preLinkCmds 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. /* memory-config builder in ACoreIDE by qxbin*/
  2. /*7 Mar 2025 08:21:44 GMT*/
  3. ENTRY(_start)
  4. SECTIONS {
  5. _code_start = . ;
  6. .text BLOCK(0x00001000) :
  7. {
  8. .__start_code = .;
  9. *(.__start);
  10. . = .__start_code + 0x20;
  11. *(.__ImageInfo);
  12. CREATE_OBJECT_SYMBOLS *( .text ) ;
  13. *(.m_hdr) ;
  14. *(.fixup);
  15. __EH_FRAME_BEGIN__ = .;
  16. *(.eh_frame) ;
  17. *(.gnu.linkonce.t*) ;
  18. . = ALIGN(4);
  19. ___CTOR_LIST__ = .;
  20. __CTOR_LIST__ = .;
  21. LONG (-1);
  22. *(.ctors);
  23. *(.ctor);
  24. LONG (0);
  25. __CTOR_END__ = .;
  26. ___DTOR_LIST__ = .;
  27. __DTOR_LIST__ = .;
  28. LONG (-1);
  29. *(.dtors);
  30. *(.dtor);
  31. LONG (0);
  32. __DTOR_END__ = .;
  33. *(.gnu.linkonce.r*);
  34. *(.rodata);
  35. *(.rodata*);
  36. *(.jcr);
  37. *(.init_begin);
  38. *(.init);
  39. *(.init_end);
  40. *(.fini);
  41. *(.text.unlikely);
  42. *(.gcc_except_table);
  43. . = ALIGN(0x1000);
  44. ;
  45. }
  46. _code_end = . ;
  47. _code_size = SIZEOF(.text);
  48. _data_start = . ;
  49. .data BLOCK(0x00001000) :
  50. {
  51. *(.data);
  52. *(.gnu.linkonce.d*);
  53. *(.gcc_except_table);
  54. *(.init_array*);
  55. *(.fini_array*);
  56. *(.data.rel.local);
  57. __SDATA_START__ = .;
  58. *(.sdata);
  59. __SDATA2_START__ = .;
  60. *(.sdata2);
  61. __GOT_START__ = .;
  62. *(.got);
  63. __GOT_END__ = .;
  64. __GOT2_START__ = .;
  65. *(.got2);
  66. __GOT2_END__ = .;
  67. *(.flash*);
  68. __FIXUP_START__ = .;
  69. __FIXUP_END__ = .;
  70. __EXCEPT_START__ = .;
  71. __EXCEPT_END__ = .;
  72. . = ALIGN(0x1000);
  73. ;
  74. }
  75. _data_end = . ;
  76. _data_size = SIZEOF(.data);
  77. _bss_start = . ;
  78. .bss BLOCK(0x00001000) :
  79. {
  80. *(.bss);
  81. *(COMMON);
  82. *(.sbss);
  83. __SBSS_END__ = .;
  84. *(.sbss2);
  85. __SBSS2_END__ = .;
  86. . = ALIGN(0x1000);
  87. ;
  88. }
  89. _bss_end = . ;
  90. _bss_size = SIZEOF(.bss);
  91. .ARM.exidx_start = . ;
  92. .ARM.exidx BLOCK(0x00001000) :
  93. {
  94. *(.ARM.exidx* .gnu.linkonce.armexidx.*) ;
  95. }
  96. .ARM.exidx_end = . ;
  97. .ARM.exidx_size = SIZEOF(.ARM.exidx);
  98. _crtl_heap_start = . ;
  99. HEAP BLOCK(0x00001000) :
  100. {
  101. }
  102. _crtl_heap_end = . ;
  103. _crtl_heap_size = SIZEOF(HEAP);
  104. }
  105. load__code_start =( 0x00001000-1 )&~(0x00001000 -1 );
  106. load__data_start =( load__code_start + _code_size + ( 0x00001000 -1 ))&~(0x00001000 -1 );
  107. load__bss_start =( load__data_start + _data_size + ( 0x00001000 -1 ))&~(0x00001000 -1 );