catlinkcmds 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. ".text_size" = 0x5f000;
  2. ".data_size" = 0x3000;
  3. ".bss_size" = 0x6e000;
  4. ".ARM.exidx_size" = 0x8;
  5. ".comment_size" = 0x2f;
  6. ".ARM.attributes_size" = 0x35;
  7. ".debug_info_size" = 0x2b06;
  8. ".debug_abbrev_size" = 0x6ec;
  9. ".debug_aranges_size" = 0xb0;
  10. ".debug_line_size" = 0xae0;
  11. ".debug_str_size" = 0x27e5;
  12. ".debug_frame_size" = 0x4b4;
  13. /* memory-config builder in ACoreIDE by qxbin*/
  14. /*17 Jul 2025 08:55:06 GMT*/
  15. ENTRY(_start)
  16. MEMORY
  17. {
  18. ram : ORIGIN = 0x85000000, LENGTH = 0x02000000
  19. }
  20. SECTIONS {
  21. .text ((0x85000000 + (0x00001000-1))& ~ (0x00001000-1)) :
  22. {
  23. ".text_start" = .;
  24. _code_start = .;
  25. .__start_code = .;
  26. *(.__start);
  27. . = .__start_code + 0x20;
  28. *(.__ImageInfo);
  29. CREATE_OBJECT_SYMBOLS *( .text ) ;
  30. *(.m_hdr) ;
  31. *(.fixup);
  32. __EH_FRAME_BEGIN__ = .;
  33. *(.eh_frame) ;
  34. *(.gnu.linkonce.t*) ;
  35. . = ALIGN(4);
  36. ___CTOR_LIST__ = .;
  37. __CTOR_LIST__ = .;
  38. LONG (-1);
  39. *(.ctors);
  40. *(.ctor);
  41. LONG (0);
  42. __CTOR_END__ = .;
  43. ___DTOR_LIST__ = .;
  44. __DTOR_LIST__ = .;
  45. LONG (-1);
  46. *(.dtors);
  47. *(.dtor);
  48. LONG (0);
  49. __DTOR_END__ = .;
  50. *(.gnu.linkonce.r*);
  51. *(.rodata);
  52. *(.rodata*);
  53. *(.jcr);
  54. *(.init_begin);
  55. *(.init);
  56. *(.init_end);
  57. *(.fini);
  58. *(.text.unlikely);
  59. *(.gcc_except_table);
  60. . = ALIGN(0x1000);
  61. ;
  62. _code_end = .;
  63. } >ram
  64. _code_size = SIZEOF(.text);
  65. .data ((".text_start" + "_code_size" + (0x00001000-1))& ~ (0x00001000-1)) :
  66. {
  67. ".data_start" = .;
  68. _data_start = .;
  69. *(.data);
  70. *(.gnu.linkonce.d*);
  71. *(.gcc_except_table);
  72. *(.init_array*);
  73. *(.fini_array*);
  74. *(.data.rel.local);
  75. __SDATA_START__ = .;
  76. *(.sdata);
  77. __SDATA2_START__ = .;
  78. *(.sdata2);
  79. __GOT_START__ = .;
  80. *(.got);
  81. __GOT_END__ = .;
  82. __GOT2_START__ = .;
  83. *(.got2);
  84. __GOT2_END__ = .;
  85. *(.flash*);
  86. __FIXUP_START__ = .;
  87. __FIXUP_END__ = .;
  88. __EXCEPT_START__ = .;
  89. __EXCEPT_END__ = .;
  90. . = ALIGN(0x1000);
  91. ;
  92. _data_end = .;
  93. } >ram
  94. _data_size = SIZEOF(.data);
  95. .bss ((".data_start" + "_data_size" + (0x00001000-1))& ~ (0x00001000-1)) :
  96. {
  97. ".bss_start" = .;
  98. _bss_start = .;
  99. *(.bss);
  100. *(COMMON);
  101. *(.sbss);
  102. __SBSS_END__ = .;
  103. *(.sbss2);
  104. __SBSS2_END__ = .;
  105. . = ALIGN(0x1000);
  106. ;
  107. _bss_end = .;
  108. } >ram
  109. _bss_size = SIZEOF(.bss);
  110. .ARM.exidx ((".bss_start" + "_bss_size" + (0x00001000-1))& ~ (0x00001000-1)) :
  111. {
  112. ".ARM.exidx_start" = .;
  113. .ARM.exidx_start = .;
  114. *(.ARM.exidx* .gnu.linkonce.armexidx.*) ;
  115. .ARM.exidx_end = .;
  116. } >ram
  117. .ARM.exidx_size = SIZEOF(.ARM.exidx);
  118. HEAP ((".ARM.exidx_start" + ".ARM.exidx_size" + (0x00001000-1))& ~ (0x00001000-1)) :
  119. {
  120. "HEAP_start" = .;
  121. _crtl_heap_start = .;
  122. _crtl_heap_end = .;
  123. } >ram
  124. _crtl_heap_size = 0x1200000;
  125. }
  126. load__code_start =( 0x00001000-1 )&~(0x00001000 -1 );
  127. load__data_start =( load__code_start + _code_size + ( 0x00001000 -1 ))&~(0x00001000 -1 );
  128. load__bss_start =( load__data_start + _data_size + ( 0x00001000 -1 ))&~(0x00001000 -1 );