m16c62p.ld 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. MEMORY
  2. {
  3. ram (rw) : o = 0x0000400, l = 31k
  4. rom (rx) : o = 0x00A0000, l = 384k
  5. nrom(rx) : o = 0x0000F000, l = 4k
  6. xram(rw) : o = 0x00028000, l = 4k
  7. }
  8. _system_stack_size = 0x800;
  9. SECTIONS
  10. {
  11. /* Variable Vector Section */
  12. .var_vects 0x000FA000 :
  13. {
  14. KEEP(*( .var_vects))
  15. } > rom
  16. .text 0x000DD000 :
  17. {
  18. *(.text)
  19. *(.text.*)
  20. /* section information for finsh shell */
  21. . = ALIGN(4);
  22. ___fsymtab_start = .;
  23. KEEP(*(FSymTab))
  24. ___fsymtab_end = .;
  25. . = ALIGN(4);
  26. ___vsymtab_start = .;
  27. KEEP(*(VSymTab))
  28. ___vsymtab_end = .;
  29. . = ALIGN(4);
  30. etext = .;
  31. } > rom
  32. .rodata :
  33. {
  34. _rodata = .;
  35. *(.rodata)
  36. *(.rodata.*)
  37. *(.frodata)
  38. _erodata = .;
  39. } > rom
  40. .init :
  41. {
  42. *(.init)
  43. } > rom
  44. .fini :
  45. {
  46. *(.fini)
  47. } > rom
  48. .got :
  49. {
  50. *(.got)
  51. *(.got.plt)
  52. } > rom
  53. .eh_frame_hdr :
  54. {
  55. *(.eh_frame_hdr)
  56. } > rom
  57. .eh_frame :
  58. {
  59. *(.eh_frame)
  60. } > rom
  61. .jcr :
  62. {
  63. *(.jcr)
  64. } > rom
  65. .tors :
  66. {
  67. __CTOR_LIST__ = .;
  68. ___ctors = .;
  69. *(.ctors)
  70. ___ctors_end = .;
  71. __CTOR_END__ = .;
  72. __DTOR_LIST__ = .;
  73. ___dtors = .;
  74. *(.dtors)
  75. ___dtors_end = .;
  76. __DTOR_END__ = .;
  77. _mdata = .;
  78. } > rom
  79. .data 0x00000400 : AT (_mdata)
  80. {
  81. _data = .;
  82. *(.data)
  83. *(.data.*)
  84. *(.ndata)
  85. *(.ndata.*)
  86. *(.plt)
  87. _edata = .;
  88. } > ram
  89. .bss :
  90. {
  91. _bss = .;
  92. *(.bss)
  93. *(COMMON)
  94. *(.nbss)
  95. _ebss = .;
  96. _end = .;
  97. } > ram
  98. .gcc_exc :
  99. {
  100. *(.gcc_exc)
  101. } > ram
  102. /* User Stack Pointer */
  103. /*
  104. .ustack 0x00003000 :
  105. {
  106. _ustack = .;
  107. } > ram
  108. */
  109. /* Interrupt Stack Pointer */
  110. .istack :
  111. {
  112. . = . + _system_stack_size;
  113. . = ALIGN(4);
  114. _istack = .;
  115. } > ram
  116. . = ALIGN(4);
  117. _user_ram_end = .;
  118. .nrodata 0x0000F000 :
  119. {
  120. _nrodata = .;
  121. *(.nrodata)
  122. *(.nrodata.*)
  123. _enrodata = .;
  124. } > nrom
  125. .fdata 0x00028000 : AT (_mdata + SIZEOF(.data))
  126. {
  127. _fdata = .;
  128. *(.fdata)
  129. *(.fdata.*)
  130. _efdata = .;
  131. } > xram
  132. .fbss :
  133. {
  134. _fbss = .;
  135. *(.fbss)
  136. *(.fbss.*)
  137. _efbss = .;
  138. } > xram
  139. /* Fixed Vector Section */
  140. .vects 0x000FFFDC :
  141. {
  142. KEEP(*( .vects))
  143. } > rom
  144. }