1
0

sections.ld 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. SECTIONS
  2. {
  3. .text :
  4. {
  5. KEEP(*(.isr_vector))
  6. *(.text*)
  7. KEEP(*(.init)) KEEP(*(.fini))
  8. *crtbegin.o(.ctors)
  9. *crtbegin?.o(.ctors)
  10. *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
  11. *(SORT(.ctors.*))
  12. *(.ctors)
  13. *crtbegin.o(.dtors)
  14. *crtbegin?.o(.dtors)
  15. *(EXCLUDE_FILE(*crtend?.o *crtend.o).dtors)
  16. *(SORT(.dtors.*))
  17. *(.dtors)
  18. *(.rodata*)
  19. KEEP(*(.eh_frame*))
  20. } > ROM
  21. .ARM.extab :
  22. {
  23. *(.ARM.extab* .gnu.linkonce.armextab.*)
  24. } > ROM
  25. __exidx_start = .;
  26. .ARM.exidx :
  27. {
  28. *(.ARM.exidx* .gnu.linkonce.armexidx.*)
  29. } > ROM
  30. __exidx_end = .;
  31. __etext = .;
  32. .data : AT (__etext)
  33. {
  34. __data_start__ = .;
  35. *(vtable)
  36. *(.data*)
  37. . = ALIGN(4);
  38. PROVIDE_HIDDEN (__preinit_array_start = .);
  39. KEEP(*(.preinit_array))
  40. PROVIDE_HIDDEN (__preinit_array_end = .);
  41. . = ALIGN(4);
  42. PROVIDE_HIDDEN (__init_array_start = .);
  43. KEEP(*(SORT(.init_array.*)))
  44. KEEP(*(.init_array))
  45. PROVIDE_HIDDEN (__init_array_end = .);
  46. . = ALIGN(4);
  47. PROVIDE_HIDDEN (__fini_array_start = .);
  48. KEEP(*(SORT(.fini_array.*)))
  49. KEEP(*(.fini_array))
  50. PROVIDE_HIDDEN (__fini_array_end = .);
  51. . = ALIGN(4);
  52. __data_end__ = .;
  53. } > RAM
  54. .bss (NOLOAD) :
  55. {
  56. __bss_start__ = .;
  57. *(.bss*)
  58. *(COMMON)
  59. __bss_end__ = .;
  60. } > RAM
  61. .heap (NOLOAD) :
  62. {
  63. __end__ = .;
  64. *(.heap*)
  65. __HeapLimit = .;
  66. } > RAM
  67. .stack_dummy (NOLOAD) :
  68. {
  69. *(.stack)
  70. } > RAM
  71. __StackTop = ORIGIN(RAM) + LENGTH(RAM);
  72. __StackLimit = __StackTop - SIZEOF(.stack_dummy);
  73. PROVIDE(__stack = __StackTop);
  74. ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
  75. PROVIDE(_estack = __stack);
  76. PROVIDE(_sidata = __etext);
  77. PROVIDE(_sdata = __data_start__);
  78. PROVIDE(_edata = __data_end__);
  79. PROVIDE(_sbss = __bss_start__);
  80. PROVIDE(_ebss = __bss_end__);
  81. }