ft32.sc 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. TORS=".tors :
  2. {
  3. ___ctors = . ;
  4. *(.ctors)
  5. ___ctors_end = . ;
  6. ___dtors = . ;
  7. *(.dtors)
  8. ___dtors_end = . ;
  9. . = ALIGN(4);
  10. } ${RELOCATING+ > ram}"
  11. cat <<EOF
  12. OUTPUT_FORMAT("${OUTPUT_FORMAT}")
  13. OUTPUT_ARCH(${ARCH})
  14. ${LIB_SEARCH_DIRS}
  15. EOF
  16. test -n "${RELOCATING}" && cat <<EOF
  17. /* Allow the command line to override the memory region sizes. */
  18. __PMSIZE = DEFINED(__PMSIZE) ? __PMSIZE : 256K;
  19. __RAMSIZE = DEFINED(__RAMSIZE) ? __RAMSIZE : 64K;
  20. MEMORY
  21. {
  22. flash (rx) : ORIGIN = 0, LENGTH = __PMSIZE
  23. ram (rw!x) : ORIGIN = 0x800000, LENGTH = __RAMSIZE
  24. }
  25. EOF
  26. cat <<EOF
  27. SECTIONS
  28. {
  29. .text :
  30. {
  31. *(.text${RELOCATING+*})
  32. ${RELOCATING+*(.strings)
  33. *(._pm*)
  34. KEEP (*(SORT_NONE(.init)))
  35. KEEP (*(SORT_NONE(.fini)))
  36. _etext = .;
  37. . = ALIGN(4);}
  38. } ${RELOCATING+ > flash}
  39. ${CONSTRUCTING+${TORS}}
  40. .data : ${RELOCATING+ AT (ADDR (.text) + SIZEOF (.text))}
  41. {
  42. *(.data)
  43. ${RELOCATING+*(.rodata)
  44. *(.rodata*)
  45. _edata = .;
  46. . = ALIGN(4);}
  47. } ${RELOCATING+ > ram}
  48. .bss ${RELOCATING+ SIZEOF(.data) + ADDR(.data)} :
  49. {
  50. ${RELOCATING+ _bss_start = . ; }
  51. *(.bss)
  52. ${RELOCATING+*(COMMON)
  53. _end = .;
  54. . = ALIGN(4);}
  55. } ${RELOCATING+ > ram}
  56. ${RELOCATING+ __data_load_start = LOADADDR(.data); }
  57. ${RELOCATING+ __data_load_end = __data_load_start + SIZEOF(.data); }
  58. .stab 0 ${RELOCATING+(NOLOAD)} :
  59. {
  60. *(.stab)
  61. }
  62. .stabstr 0 ${RELOCATING+(NOLOAD)} :
  63. {
  64. *(.stabstr)
  65. }
  66. EOF
  67. . $srcdir/scripttempl/DWARF.sc
  68. cat <<EOF
  69. }
  70. EOF