catlinkcmds 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. /* memory-config builder in ACoreIDE by qxbin*/
  2. /*21 Nov 2024 15:59:58 GMT*/
  3. ENTRY(_start)
  4. MEMORY
  5. {
  6. ram : ORIGIN = 0x00000000, LENGTH = 0xffffffff
  7. }
  8. SECTIONS {
  9. .text ((0x00000000 + (0x00001000-1))& ~ (0x00001000-1)) :
  10. {
  11. ".text_start" = .;
  12. _code_start = .;
  13. .__start_code = .;
  14. *(.__start);
  15. . = .__start_code + 0x20;
  16. *(.__ImageInfo);
  17. CREATE_OBJECT_SYMBOLS;
  18. CREATE_OBJECT_SYMBOLS *( .text* ) ;
  19. *(.m_hdr) ;
  20. __EH_FRAME_BEGIN__ = .;
  21. *(.eh_frame) ;
  22. *(.gnu.linkonce.t*) ;
  23. . = ALIGN(4);
  24. ___CTOR_LIST__ = .;
  25. __CTOR_LIST__ = .;
  26. LONG (-1);
  27. *(.ctors);
  28. *(.ctor);
  29. LONG (0);
  30. __CTOR_END__ = .;
  31. ___DTOR_LIST__ = .;
  32. __DTOR_LIST__ = .;
  33. LONG (-1);
  34. *(.dtors);
  35. *(.dtor);
  36. LONG (0);
  37. __DTOR_END__ = .;
  38. *(.gnu.linkonce.r*);
  39. *(.glue_7) ;
  40. *(.glue_7t);
  41. *(.init_begin);
  42. *(.init);
  43. *(.init_end);
  44. *(.fini);
  45. *(.jcr);
  46. *(.fixup);
  47. *(.interface);
  48. . = ALIGN(0x1000);
  49. ;
  50. _code_end = .;
  51. } >ram
  52. _code_size = SIZEOF(.text);
  53. .data ((".text_start" + "_code_size" + (0x00001000-1))& ~ (0x00001000-1)) :
  54. {
  55. ".data_start" = .;
  56. _data_start = .;
  57. *(.data*);
  58. *(.data.rel.local);
  59. *(.gnu.linkonce.d*);
  60. *(.sdata*);
  61. *(.ARM.extab*);
  62. *(.tm_clone_table*);
  63. *(.gcc_except_table*);
  64. *(.igot*);
  65. *(.got*);
  66. __GOT_END__ = .;
  67. __INIT_ARRAY_LIST__ = .;
  68. *(.init_array);
  69. LONG (0);
  70. __FINI_ARRAY_LIST__ = .;
  71. *(.fini_array);
  72. LONG (0);
  73. . = ALIGN(0x1000);
  74. ;
  75. _data_end = .;
  76. } >ram
  77. _data_size = SIZEOF(.data);
  78. .rodata ((".data_start" + "_data_size" + (0x00001000-1))& ~ (0x00001000-1)) :
  79. {
  80. ".rodata_start" = .;
  81. _rodata_start = .;
  82. *(.rodata);
  83. *(.rodata*);
  84. . = ALIGN(0x1000);
  85. _rodata_end = .;
  86. } >ram
  87. _rodata_size = SIZEOF(.rodata);
  88. .pdata ((".rodata_start" + "_rodata_size" + (0x00001000-1))& ~ (0x00001000-1)) :
  89. {
  90. ".pdata_start" = .;
  91. __exidx_start = .;
  92. *(.ARM.exidx* .gnu.linkonce.armexidx.*) ;
  93. ;
  94. __exidx_end = .;
  95. } >ram
  96. __exidx_size = SIZEOF(.pdata);
  97. .bss ((".pdata_start" + "__exidx_size" + (0x00001000-1))& ~ (0x00001000-1)) :
  98. {
  99. ".bss_start" = .;
  100. _bss_start = .;
  101. *(.bss*);
  102. *(COMMON);
  103. *(.sbss);
  104. . = ALIGN(16);
  105. _bss_end = .;
  106. } >ram
  107. _bss_size = SIZEOF(.bss);
  108. }
  109. load__code_start =( 0x00001000-1 )&~(0x00001000 -1 );
  110. load__data_start =( load__code_start + _code_size + ( 0x00001000 -1 ))&~(0x00001000 -1 );
  111. load__rodata_start =( load__data_start + _data_size + ( 0x00001000 -1 ))&~(0x00001000 -1 );
  112. load___exidx_start =( load__rodata_start + _rodata_size + ( 0x00001000 -1 ))&~(0x00001000 -1 );
  113. load__bss_start =( load___exidx_start + __exidx_size + ( 0x00001000 -1 ))&~(0x00001000 -1 );