bf533_sdram_64M.ldf 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486
  1. /* MANAGED-BY-SYSTEM-BUILDER */
  2. /* VisualDSP++ 5.0 Update 6 */
  3. /* LDF Printer version: 5.6.0.4 */
  4. /* ldfgen.exe version: 5.6.0.4 */
  5. /* VDSG version: 5.6.0.4 */
  6. /*
  7. ** ADSP-BF533 linker description file generated on Feb 22, 2012 at 14:26:29.
  8. **
  9. ** Copyright (C) 2000-2008 Analog Devices Inc., All Rights Reserved.
  10. **
  11. ** This file is generated automatically based upon the options selected
  12. ** in the LDF Wizard. Changes to the LDF configuration should be made by
  13. ** changing the appropriate options rather than editing this file.
  14. **
  15. ** Configuration:-
  16. ** crt_doj: bf533_basiccrt.doj
  17. ** processor: ADSP-BF533
  18. ** product_name: VisualDSP++ 5.0 Update 6
  19. ** si_revision: automatic
  20. ** default_silicon_revision_from_archdef: 0.5
  21. ** cplb_init_cplb_ctrl: (
  22. ** CPLB_ENABLE_ICACHE
  23. ** CPLB_ENABLE_DCACHE
  24. ** CPLB_ENABLE_DCACHE2
  25. ** CPLB_ENABLE_CPLBS
  26. ** CPLB_ENABLE_ICPLBS
  27. ** CPLB_ENABLE_DCPLBS
  28. ** )
  29. ** using_cplusplus: true
  30. ** mem_init: false
  31. ** use_vdk: false
  32. ** use_eh: true
  33. ** use_argv: false
  34. ** running_from_internal_memory: true
  35. ** user_heap_src_file: E:\eclipse\3m_dsp\ARZ-3M3B-DSP_base26\rt-thread\bsp\bf533\vdsp\bf533_heaptab.c
  36. ** libraries_use_stdlib: true
  37. ** libraries_use_fileio_libs: false
  38. ** libraries_use_ieeefp_emulation_libs: false
  39. ** libraries_use_eh_enabled_libs: false
  40. ** system_heap: L1
  41. ** system_heap_min_size: 1k
  42. ** system_stack: L1
  43. ** system_stack_min_size: 1k
  44. ** use_sdram: true
  45. ** use_sdram_size: 64MB
  46. ** use_sdram_partitioned: none
  47. **
  48. */
  49. ARCHITECTURE(ADSP-BF533)
  50. SEARCH_DIR($ADI_DSP/Blackfin/lib)
  51. // Workarounds are enabled, exceptions are disabled.
  52. #define RT_LIB_NAME(x) lib ## x ## y.dlb
  53. #define RT_LIB_NAME_EH(x) lib ## x ## y.dlb
  54. #define RT_LIB_NAME_MT(x) lib ## x ## y.dlb
  55. #define RT_LIB_NAME_EH_MT(x) lib ## x ## y.dlb
  56. #define RT_OBJ_NAME(x) x ## y.doj
  57. #define RT_OBJ_NAME_MT(x) x ## mty.doj
  58. $LIBRARIES =
  59. /*$VDSG<insert-user-libraries-at-beginning> */
  60. /* Text inserted between these $VDSG comments will be preserved */
  61. /*$VDSG<insert-user-libraries-at-beginning> */
  62. RT_LIB_NAME_MT(small532)
  63. ,RT_LIB_NAME_MT(io532)
  64. ,RT_LIB_NAME_MT(c532)
  65. ,RT_LIB_NAME_MT(event532)
  66. ,RT_LIB_NAME_MT(x532)
  67. ,RT_LIB_NAME_EH_MT(cpp532)
  68. ,RT_LIB_NAME_EH_MT(cpprt532)
  69. ,RT_LIB_NAME(f64ieee532)
  70. ,RT_LIB_NAME(dsp532)
  71. ,RT_LIB_NAME(sftflt532)
  72. ,RT_LIB_NAME(etsi532)
  73. ,RT_LIB_NAME(ssl532)
  74. ,RT_LIB_NAME(drv532)
  75. ,RT_LIB_NAME(usb532)
  76. ,RT_OBJ_NAME_MT(idle532)
  77. ,RT_LIB_NAME_MT(rt_fileio532)
  78. /*$VDSG<insert-user-libraries-at-end> */
  79. /* Text inserted between these $VDSG comments will be preserved */
  80. /*$VDSG<insert-user-libraries-at-end> */
  81. ;
  82. $OBJECTS =
  83. "bf533_basiccrt.doj"
  84. /*$VDSG<insert-user-objects-at-beginning> */
  85. /* Text inserted between these $VDSG comments will be preserved */
  86. /*$VDSG<insert-user-objects-at-beginning> */
  87. , RT_LIB_NAME(profile532)
  88. , $COMMAND_LINE_OBJECTS
  89. , "cplbtab533.doj"
  90. /*$VDSG<insert-user-objects-at-end> */
  91. /* Text inserted between these $VDSG comments will be preserved */
  92. /*$VDSG<insert-user-objects-at-end> */
  93. , RT_OBJ_NAME(crtn532)
  94. ;
  95. $OBJS_LIBS_INTERNAL =
  96. /*$VDSG<insert-libraries-internal> */
  97. /* Text inserted between these $VDSG comments will be preserved */
  98. /*$VDSG<insert-libraries-internal> */
  99. $OBJECTS{prefersMem("internal")}, $LIBRARIES{prefersMem("internal")}
  100. /*$VDSG<insert-libraries-internal-end> */
  101. /* Text inserted between these $VDSG comments will be preserved */
  102. /*$VDSG<insert-libraries-internal-end> */
  103. ;
  104. $OBJS_LIBS_NOT_EXTERNAL =
  105. /*$VDSG<insert-libraries-not-external> */
  106. /* Text inserted between these $VDSG comments will be preserved */
  107. /*$VDSG<insert-libraries-not-external> */
  108. $OBJECTS{!prefersMem("external")}, $LIBRARIES{!prefersMem("external")}
  109. /*$VDSG<insert-libraries-not-external-end> */
  110. /* Text inserted between these $VDSG comments will be preserved */
  111. /*$VDSG<insert-libraries-not-external-end> */
  112. ;
  113. /*$VDSG<insert-user-macros> */
  114. /* Text inserted between these $VDSG comments will be preserved */
  115. /*$VDSG<insert-user-macros> */
  116. /*$VDSG<customize-async-macros> */
  117. /* This code is preserved if the LDF is re-generated. */
  118. #define ASYNC0_MEMTYPE RAM
  119. #define ASYNC1_MEMTYPE RAM
  120. #define ASYNC2_MEMTYPE RAM
  121. #define ASYNC3_MEMTYPE RAM
  122. /*$VDSG<customize-async-macros> */
  123. MEMORY
  124. {
  125. /*
  126. ** ADSP-BF533 MEMORY MAP.
  127. **
  128. ** The known memory spaces are as follows:
  129. **
  130. ** 0xFFE00000 - 0xFFFFFFFF Core MMR registers (2MB)
  131. ** 0xFFC00000 - 0xFFDFFFFF System MMR registers (2MB)
  132. ** 0xFFB01000 - 0xFFBFFFFF Reserved
  133. ** 0xFFB00000 - 0xFFB00FFF Scratch SRAM (4K)
  134. ** 0xFFA14000 - 0xFFAFFFFF Reserved
  135. ** 0xFFA10000 - 0xFFA13FFF Code SRAM / cache (16K)
  136. ** 0xFFA00000 - 0xFFA0FFFF Code SRAM (64K)
  137. ** 0xFF908000 - 0xFF9FFFFF Reserved
  138. ** 0xFF904000 - 0xFF907FFF Data Bank B SRAM / cache (16K)
  139. ** 0xFF900000 - 0xFF903FFF Data Bank B SRAM (16K)
  140. ** 0xFF808000 - 0xFF8FFFFF Reserved
  141. ** 0xFF804000 - 0xFF807FFF Data Bank A SRAM / cache (16K)
  142. ** 0xFF800000 - 0xFF803FFF Data Bank A SRAM (16K)
  143. ** 0xEF000000 - 0xFF7FFFFF Reserved
  144. ** 0x20400000 - 0xEEFFFFFF Reserved
  145. ** 0x20300000 - 0x203FFFFF ASYNC MEMORY BANK 3 (1MB)
  146. ** 0x20200000 - 0x202FFFFF ASYNC MEMORY BANK 2 (1MB)
  147. ** 0x20100000 - 0x201FFFFF ASYNC MEMORY BANK 1 (1MB)
  148. ** 0x20000000 - 0x200FFFFF ASYNC MEMORY BANK 0 (1MB)
  149. ** 0x00000000 - 0x07FFFFFF SDRAM MEMORY (16MB - 128MB)
  150. */
  151. MEM_L1_SCRATCH { TYPE(RAM) START(0xFFB00000) END(0xFFB00FFF) WIDTH(8) }
  152. MEM_L1_CODE_CACHE { TYPE(RAM) START(0xFFA10000) END(0xFFA13FFF) WIDTH(8) }
  153. MEM_L1_CODE { TYPE(RAM) START(0xFFA00000) END(0xFFA0FFFF) WIDTH(8) }
  154. MEM_L1_DATA_B_CACHE { TYPE(RAM) START(0xFF904000) END(0xFF907FFF) WIDTH(8) }
  155. MEM_L1_DATA_B { TYPE(RAM) START(0xFF900000) END(0xFF903FFF) WIDTH(8) }
  156. MEM_L1_DATA_A_CACHE { TYPE(RAM) START(0xFF804000) END(0xFF807FFF) WIDTH(8) }
  157. MEM_L1_DATA_A { TYPE(RAM) START(0xFF800000) END(0xFF803FFF) WIDTH(8) }
  158. MEM_ASYNC3 { TYPE(ASYNC3_MEMTYPE) START(0x20300000) END(0x203FFFFF) WIDTH(8) }
  159. MEM_ASYNC2 { TYPE(ASYNC2_MEMTYPE) START(0x20200000) END(0x202FFFFF) WIDTH(8) }
  160. MEM_ASYNC1 { TYPE(ASYNC1_MEMTYPE) START(0x20100000) END(0x201FFFFF) WIDTH(8) }
  161. MEM_ASYNC0 { TYPE(ASYNC0_MEMTYPE) START(0x20000000) END(0x200FFFFF) WIDTH(8) }
  162. MEM_SDRAM0 { TYPE(RAM) START(0x00000004) END(0x03ffffff) WIDTH(8) }
  163. /*$VDSG<insert-new-memory-segments> */
  164. /* Text inserted between these $VDSG comments will be preserved */
  165. /*$VDSG<insert-new-memory-segments> */
  166. } /* MEMORY */
  167. PROCESSOR p0
  168. {
  169. OUTPUT($COMMAND_LINE_OUTPUT_FILE)
  170. RESOLVE(start, 0xFFA00000)
  171. KEEP(start, _main)
  172. KEEP_SECTIONS(FSymTab,VSymTab,RTMSymTab)
  173. /*$VDSG<insert-user-ldf-commands> */
  174. /* Text inserted between these $VDSG comments will be preserved */
  175. /*$VDSG<insert-user-ldf-commands> */
  176. SECTIONS
  177. {
  178. /* Workaround for hardware errata 05-00-0189 and 05-00-0310 -
  179. ** "Speculative (and fetches made at boundary of reserved memory
  180. ** space) for instruction or data fetches may cause false
  181. ** protection exceptions" and "False hardware errors caused by
  182. ** fetches at the boundary of reserved memory ".
  183. **
  184. ** Done by avoiding use of 76 bytes from at the end of blocks
  185. ** that are adjacent to reserved memory. Workaround is enabled
  186. ** for appropriate silicon revisions (-si-revision switch).
  187. */
  188. RESERVE(___wab0=MEMORY_END(MEM_L1_SCRATCH) - 75, ___l0 = 76)
  189. RESERVE(___wab2=MEMORY_END(MEM_L1_CODE) - 75, ___l2 = 76)
  190. RESERVE(___wab3=MEMORY_END(MEM_L1_DATA_B_CACHE) - 75, ___l3 = 76)
  191. RESERVE(___wab5=MEMORY_END(MEM_L1_DATA_A_CACHE) - 75, ___l5 = 76)
  192. RESERVE(___wab7=MEMORY_END(MEM_ASYNC3) - 75, ___l7 = 76)
  193. RESERVE(___wab9=MEMORY_END(MEM_SDRAM0) - 75, ___l9 = 76)
  194. /*$VDSG<insert-new-sections-at-the-start> */
  195. /* Text inserted between these $VDSG comments will be preserved */
  196. /*$VDSG<insert-new-sections-at-the-start> */
  197. scratchpad NO_INIT
  198. {
  199. INPUT_SECTION_ALIGN(4)
  200. /*$VDSG<insert-input-sections-at-the-start-of-scratchpad> */
  201. /* Text inserted between these $VDSG comments will be preserved */
  202. /*$VDSG<insert-input-sections-at-the-start-of-scratchpad> */
  203. INPUT_SECTIONS($OBJECTS(L1_scratchpad) $LIBRARIES(L1_scratchpad))
  204. /*$VDSG<insert-input-sections-at-the-end-of-scratchpad> */
  205. /* Text inserted between these $VDSG comments will be preserved */
  206. /*$VDSG<insert-input-sections-at-the-end-of-scratchpad> */
  207. } > MEM_L1_SCRATCH
  208. L1_code
  209. {
  210. INPUT_SECTION_ALIGN(4)
  211. INPUT_SECTIONS($OBJECTS(L1_code) $LIBRARIES(L1_code))
  212. /*$VDSG<insert-input-sections-at-the-start-of-l1_code> */
  213. /* Text inserted between these $VDSG comments will be preserved */
  214. /*$VDSG<insert-input-sections-at-the-start-of-l1_code> */
  215. INPUT_SECTIONS($OBJECTS(cplb_code) $LIBRARIES(cplb_code))
  216. INPUT_SECTIONS($OBJECTS(cplb) $LIBRARIES(cplb))
  217. INPUT_SECTIONS($OBJECTS(noncache_code) $LIBRARIES(noncache_code))
  218. INPUT_SECTIONS($OBJS_LIBS_INTERNAL(program))
  219. INPUT_SECTIONS($OBJS_LIBS_NOT_EXTERNAL(program))
  220. INPUT_SECTIONS($OBJECTS(program) $LIBRARIES(program))
  221. /*$VDSG<insert-input-sections-at-the-end-of-l1_code> */
  222. /* Text inserted between these $VDSG comments will be preserved */
  223. /*$VDSG<insert-input-sections-at-the-end-of-l1_code> */
  224. } > MEM_L1_CODE
  225. L1_code_cache
  226. {
  227. INPUT_SECTION_ALIGN(4)
  228. ___l1_code_cache = 1;
  229. } > MEM_L1_CODE_CACHE
  230. L1_data_a_1
  231. {
  232. INPUT_SECTION_ALIGN(4)
  233. INPUT_SECTIONS($OBJECTS(L1_data_a) $LIBRARIES(L1_data_a))
  234. INPUT_SECTIONS($OBJECTS(L1_data) $LIBRARIES(L1_data))
  235. /*$VDSG<insert-input-sections-at-the-start-of-L1_data_a> */
  236. /* Text inserted between these $VDSG comments will be preserved */
  237. /*$VDSG<insert-input-sections-at-the-start-of-L1_data_a> */
  238. RESERVE(heaps_and_stack_in_L1_data_a, heaps_and_stack_in_L1_data_a_length = 1024,4)
  239. } > MEM_L1_DATA_A
  240. L1_data_a_bsz ZERO_INIT
  241. {
  242. INPUT_SECTION_ALIGN(4)
  243. INPUT_SECTIONS( $OBJECTS(L1_bsz) $LIBRARIES(L1_bsz))
  244. } > MEM_L1_DATA_A
  245. L1_data_a_tables
  246. {
  247. INPUT_SECTION_ALIGN(4)
  248. FORCE_CONTIGUITY
  249. INPUT_SECTIONS($OBJECTS(vtbl) $LIBRARIES(vtbl))
  250. INPUT_SECTIONS($OBJECTS(ctor) $LIBRARIES(ctor))
  251. INPUT_SECTIONS($OBJECTS(ctorl) $LIBRARIES(ctorl))
  252. INPUT_SECTIONS($OBJECTS(.frt) $LIBRARIES(.frt))
  253. INPUT_SECTIONS($OBJECTS(.rtti) $LIBRARIES(.rtti))
  254. INPUT_SECTIONS($OBJECTS(.gdt) $LIBRARIES(.gdt))
  255. INPUT_SECTIONS($OBJECTS(.gdtl) $LIBRARIES(.gdtl))
  256. INPUT_SECTIONS($OBJECTS(.edt) $LIBRARIES(.edt))
  257. INPUT_SECTIONS($OBJECTS(.cht) $LIBRARIES(.cht))
  258. } > MEM_L1_DATA_A
  259. L1_data_a
  260. {
  261. INPUT_SECTION_ALIGN(4)
  262. INPUT_SECTIONS($OBJECTS(cplb_data) $LIBRARIES(cplb_data))
  263. INPUT_SECTIONS($OBJECTS(voldata) $LIBRARIES(voldata))
  264. INPUT_SECTIONS($OBJS_LIBS_INTERNAL(data1))
  265. INPUT_SECTIONS($OBJS_LIBS_NOT_EXTERNAL(data1))
  266. INPUT_SECTIONS($OBJECTS(data1) $LIBRARIES(data1))
  267. INPUT_SECTIONS($OBJECTS(constdata) $LIBRARIES(constdata))
  268. /*$VDSG<insert-input-sections-at-the-end-of-L1_data_a> */
  269. /* Text inserted between these $VDSG comments will be preserved */
  270. /*$VDSG<insert-input-sections-at-the-end-of-L1_data_a> */
  271. } > MEM_L1_DATA_A
  272. bsz_L1_data_a ZERO_INIT
  273. {
  274. INPUT_SECTION_ALIGN(4)
  275. INPUT_SECTIONS($OBJS_LIBS_INTERNAL(bsz))
  276. INPUT_SECTIONS($OBJS_LIBS_NOT_EXTERNAL(bsz))
  277. INPUT_SECTIONS($OBJECTS(bsz) $LIBRARIES(bsz))
  278. } > MEM_L1_DATA_A
  279. L1_data_a_stack_heap
  280. {
  281. INPUT_SECTION_ALIGN(4)
  282. RESERVE_EXPAND(heaps_and_stack_in_L1_data_a, heaps_and_stack_in_L1_data_a_length , 0, 4)
  283. ldf_stack_space = heaps_and_stack_in_L1_data_a;
  284. ldf_stack_end = (ldf_stack_space + (heaps_and_stack_in_L1_data_a_length - 4)) & 0xfffffffc;
  285. } > MEM_L1_DATA_A
  286. L1_data_a_cache
  287. {
  288. INPUT_SECTION_ALIGN(4)
  289. ___l1_data_cache_a = 1;
  290. } > MEM_L1_DATA_A_CACHE
  291. L1_data_b_bsz ZERO_INIT
  292. {
  293. INPUT_SECTION_ALIGN(4)
  294. INPUT_SECTIONS( $OBJECTS(L1_bsz) $LIBRARIES(L1_bsz))
  295. } > MEM_L1_DATA_B
  296. L1_data_b
  297. {
  298. INPUT_SECTION_ALIGN(4)
  299. INPUT_SECTIONS($OBJECTS(L1_data_b) $LIBRARIES(L1_data_b))
  300. INPUT_SECTIONS($OBJECTS(L1_data) $LIBRARIES(L1_data))
  301. /*$VDSG<insert-input-sections-at-the-start-of-L1_data_b> */
  302. /* Text inserted between these $VDSG comments will be preserved */
  303. /*$VDSG<insert-input-sections-at-the-start-of-L1_data_b> */
  304. RESERVE(heaps_and_stack_in_L1_data_b, heaps_and_stack_in_L1_data_b_length = 1024,4)
  305. INPUT_SECTIONS($OBJECTS(cplb_data) $LIBRARIES(cplb_data))
  306. INPUT_SECTIONS($OBJECTS(voldata) $LIBRARIES(voldata))
  307. INPUT_SECTIONS($OBJS_LIBS_INTERNAL(data1))
  308. INPUT_SECTIONS($OBJS_LIBS_NOT_EXTERNAL(data1))
  309. INPUT_SECTIONS($OBJECTS(data1) $LIBRARIES(data1))
  310. INPUT_SECTIONS($OBJECTS(constdata) $LIBRARIES(constdata))
  311. INPUT_SECTIONS($OBJECTS(.edt) $LIBRARIES(.edt) )
  312. INPUT_SECTIONS($OBJECTS(.cht) $LIBRARIES(.cht) )
  313. /*$VDSG<insert-input-sections-at-the-end-of-L1_data_b> */
  314. /* Text inserted between these $VDSG comments will be preserved */
  315. /*$VDSG<insert-input-sections-at-the-end-of-L1_data_b> */
  316. } > MEM_L1_DATA_B
  317. bsz_L1_data_b ZERO_INIT
  318. {
  319. INPUT_SECTION_ALIGN(4)
  320. INPUT_SECTIONS($OBJS_LIBS_INTERNAL(bsz))
  321. INPUT_SECTIONS($OBJS_LIBS_NOT_EXTERNAL(bsz))
  322. INPUT_SECTIONS($OBJECTS(bsz) $LIBRARIES(bsz))
  323. } > MEM_L1_DATA_B
  324. L1_data_b_stack_heap
  325. {
  326. INPUT_SECTION_ALIGN(4)
  327. RESERVE_EXPAND(heaps_and_stack_in_L1_data_b, heaps_and_stack_in_L1_data_b_length , 0, 4)
  328. ldf_heap_space = heaps_and_stack_in_L1_data_b;
  329. ldf_heap_end = (ldf_heap_space + (heaps_and_stack_in_L1_data_b_length - 4)) & 0xfffffffc;
  330. ldf_heap_length = ldf_heap_end - ldf_heap_space;
  331. } > MEM_L1_DATA_B
  332. L1_data_b_cache
  333. {
  334. INPUT_SECTION_ALIGN(4)
  335. ___l1_data_cache_b = 1;
  336. } > MEM_L1_DATA_B_CACHE
  337. sdram
  338. {
  339. INPUT_SECTION_ALIGN(4)
  340. INPUT_SECTIONS($OBJECTS(sdram0) $LIBRARIES(sdram0))
  341. INPUT_SECTIONS($OBJECTS(sdram0_bank0) $LIBRARIES(sdram0_bank0))
  342. INPUT_SECTIONS($OBJECTS(sdram0_bank1) $LIBRARIES(sdram0_bank1))
  343. INPUT_SECTIONS($OBJECTS(sdram0_bank2) $LIBRARIES(sdram0_bank2))
  344. INPUT_SECTIONS($OBJECTS(sdram0_bank3) $LIBRARIES(sdram0_bank3))
  345. /*$VDSG<insert-input-sections-at-the-start-of-sdram> */
  346. /* Text inserted between these $VDSG comments will be preserved */
  347. /*$VDSG<insert-input-sections-at-the-start-of-sdram> */
  348. INPUT_SECTIONS($OBJECTS(noncache_code) $LIBRARIES(noncache_code))
  349. INPUT_SECTIONS($OBJECTS(program) $LIBRARIES(program))
  350. INPUT_SECTIONS($OBJECTS(cplb) $LIBRARIES(cplb))
  351. INPUT_SECTIONS($OBJECTS(cplb_code) $LIBRARIES(cplb_code))
  352. INPUT_SECTIONS($OBJECTS(data1) $LIBRARIES(data1))
  353. INPUT_SECTIONS($OBJECTS(voldata) $LIBRARIES(voldata))
  354. INPUT_SECTIONS($OBJECTS(constdata) $LIBRARIES(constdata))
  355. INPUT_SECTIONS($OBJECTS(cplb_data) $LIBRARIES(cplb_data))
  356. INPUT_SECTIONS($OBJECTS(.edt) $LIBRARIES(.edt))
  357. INPUT_SECTIONS($OBJECTS(.cht) $LIBRARIES(.cht))
  358. /*$VDSG<insert-input-sections-at-the-end-of-sdram> */
  359. /* Text inserted between these $VDSG comments will be preserved */
  360. /*$VDSG<insert-input-sections-at-the-end-of-sdram> */
  361. } > MEM_SDRAM0
  362. bsz_sdram0 ZERO_INIT
  363. {
  364. INPUT_SECTION_ALIGN(4)
  365. INPUT_SECTIONS($OBJECTS(sdram_bsz) $LIBRARIES(sdram_bsz))
  366. INPUT_SECTIONS($OBJECTS(bsz) $LIBRARIES(bsz))
  367. } > MEM_SDRAM0
  368. rt_thread_section
  369. {
  370. /* section information for finsh shell */
  371. INPUT_SECTION_ALIGN(4)
  372. __fsymtab_start = .;
  373. INPUT_SECTIONS($OBJECTS(FSymTab) $LIBRARIES(FSymTab))
  374. __fsymtab_end = .;
  375. INPUT_SECTION_ALIGN(4)
  376. __vsymtab_start = .;
  377. INPUT_SECTIONS($OBJECTS(VSymTab) $LIBRARIES(VSymTab))
  378. __vsymtab_end = .;
  379. /* section information for modules */
  380. INPUT_SECTION_ALIGN(4)
  381. __rtmsymtab_start = .;
  382. INPUT_SECTIONS($OBJECTS(RTMSymTab) $LIBRARIES(RTMSymTab))
  383. __rtmsymtab_end = .;
  384. RESERVE(heaps_in_sdram_space, heaps_in_sdram_length = 2048,4)
  385. } > MEM_SDRAM0
  386. sdram_stack_heap
  387. {
  388. RESERVE_EXPAND(heaps_in_sdram_space, heaps_in_sdram_length , 0, 4)
  389. rtt_heap_start = heaps_in_sdram_space;
  390. rtt_heap_end = (heaps_in_sdram_space + heaps_in_sdram_length - 32) & 0xfffffffc;
  391. rtt_heap_length = rtt_heap_end - rtt_heap_start;
  392. } > MEM_SDRAM0
  393. /*$VDSG<insert-new-sections-at-the-end> */
  394. /* Text inserted between these $VDSG comments will be preserved */
  395. /*$VDSG<insert-new-sections-at-the-end> */
  396. } /* SECTIONS */
  397. } /* p0 */