bf533_ram.ldf 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424
  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 23, 2012 at 09:38:46.
  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_ICPLBS
  24. ** )
  25. ** using_cplusplus: true
  26. ** mem_init: false
  27. ** use_vdk: false
  28. ** use_eh: true
  29. ** use_argv: false
  30. ** running_from_internal_memory: true
  31. ** user_heap_src_file: E:\eclipse\tq2440radio\bsp\bf533\vdsp\bf533_heaptab.c
  32. ** libraries_use_stdlib: true
  33. ** libraries_use_fileio_libs: false
  34. ** libraries_use_ieeefp_emulation_libs: false
  35. ** libraries_use_eh_enabled_libs: false
  36. ** system_heap: L1
  37. ** system_heap_min_size: 1k
  38. ** system_stack: L1
  39. ** system_stack_min_size: 1k
  40. ** use_sdram: false
  41. **
  42. */
  43. ARCHITECTURE(ADSP-BF533)
  44. SEARCH_DIR($ADI_DSP/Blackfin/lib)
  45. // Workarounds are enabled, exceptions are disabled.
  46. #define RT_LIB_NAME(x) lib ## x ## y.dlb
  47. #define RT_LIB_NAME_EH(x) lib ## x ## y.dlb
  48. #define RT_LIB_NAME_MT(x) lib ## x ## y.dlb
  49. #define RT_LIB_NAME_EH_MT(x) lib ## x ## y.dlb
  50. #define RT_OBJ_NAME(x) x ## y.doj
  51. #define RT_OBJ_NAME_MT(x) x ## mty.doj
  52. $LIBRARIES =
  53. /*$VDSG<insert-user-libraries-at-beginning> */
  54. /* Text inserted between these $VDSG comments will be preserved */
  55. /*$VDSG<insert-user-libraries-at-beginning> */
  56. RT_LIB_NAME_MT(small532)
  57. ,RT_LIB_NAME_MT(io532)
  58. ,RT_LIB_NAME_MT(c532)
  59. ,RT_LIB_NAME_MT(event532)
  60. ,RT_LIB_NAME_MT(x532)
  61. ,RT_LIB_NAME_EH_MT(cpp532)
  62. ,RT_LIB_NAME_EH_MT(cpprt532)
  63. ,RT_LIB_NAME(f64ieee532)
  64. ,RT_LIB_NAME(dsp532)
  65. ,RT_LIB_NAME(sftflt532)
  66. ,RT_LIB_NAME(etsi532)
  67. ,RT_LIB_NAME(ssl532)
  68. ,RT_LIB_NAME(drv532)
  69. ,RT_LIB_NAME(usb532)
  70. ,RT_OBJ_NAME_MT(idle532)
  71. ,RT_LIB_NAME_MT(rt_fileio532)
  72. /*$VDSG<insert-user-libraries-at-end> */
  73. /* Text inserted between these $VDSG comments will be preserved */
  74. /*$VDSG<insert-user-libraries-at-end> */
  75. ;
  76. $OBJECTS =
  77. "bf533_basiccrt.doj"
  78. /*$VDSG<insert-user-objects-at-beginning> */
  79. /* Text inserted between these $VDSG comments will be preserved */
  80. /*$VDSG<insert-user-objects-at-beginning> */
  81. , RT_LIB_NAME(profile532)
  82. , $COMMAND_LINE_OBJECTS
  83. , "cplbtab533.doj"
  84. /*$VDSG<insert-user-objects-at-end> */
  85. /* Text inserted between these $VDSG comments will be preserved */
  86. /*$VDSG<insert-user-objects-at-end> */
  87. , RT_OBJ_NAME(crtn532)
  88. ;
  89. $OBJS_LIBS_INTERNAL =
  90. /*$VDSG<insert-libraries-internal> */
  91. /* Text inserted between these $VDSG comments will be preserved */
  92. /*$VDSG<insert-libraries-internal> */
  93. $OBJECTS{prefersMem("internal")}, $LIBRARIES{prefersMem("internal")}
  94. /*$VDSG<insert-libraries-internal-end> */
  95. /* Text inserted between these $VDSG comments will be preserved */
  96. /*$VDSG<insert-libraries-internal-end> */
  97. ;
  98. $OBJS_LIBS_NOT_EXTERNAL =
  99. /*$VDSG<insert-libraries-not-external> */
  100. /* Text inserted between these $VDSG comments will be preserved */
  101. /*$VDSG<insert-libraries-not-external> */
  102. $OBJECTS{!prefersMem("external")}, $LIBRARIES{!prefersMem("external")}
  103. /*$VDSG<insert-libraries-not-external-end> */
  104. /* Text inserted between these $VDSG comments will be preserved */
  105. /*$VDSG<insert-libraries-not-external-end> */
  106. ;
  107. /*$VDSG<insert-user-macros> */
  108. /* Text inserted between these $VDSG comments will be preserved */
  109. /*$VDSG<insert-user-macros> */
  110. /*$VDSG<customize-async-macros> */
  111. /* This code is preserved if the LDF is re-generated. */
  112. #define ASYNC0_MEMTYPE RAM
  113. #define ASYNC1_MEMTYPE RAM
  114. #define ASYNC2_MEMTYPE RAM
  115. #define ASYNC3_MEMTYPE RAM
  116. /*$VDSG<customize-async-macros> */
  117. MEMORY
  118. {
  119. /*
  120. ** ADSP-BF533 MEMORY MAP.
  121. **
  122. ** The known memory spaces are as follows:
  123. **
  124. ** 0xFFE00000 - 0xFFFFFFFF Core MMR registers (2MB)
  125. ** 0xFFC00000 - 0xFFDFFFFF System MMR registers (2MB)
  126. ** 0xFFB01000 - 0xFFBFFFFF Reserved
  127. ** 0xFFB00000 - 0xFFB00FFF Scratch SRAM (4K)
  128. ** 0xFFA14000 - 0xFFAFFFFF Reserved
  129. ** 0xFFA10000 - 0xFFA13FFF Code SRAM / cache (16K)
  130. ** 0xFFA00000 - 0xFFA0FFFF Code SRAM (64K)
  131. ** 0xFF908000 - 0xFF9FFFFF Reserved
  132. ** 0xFF904000 - 0xFF907FFF Data Bank B SRAM / cache (16K)
  133. ** 0xFF900000 - 0xFF903FFF Data Bank B SRAM (16K)
  134. ** 0xFF808000 - 0xFF8FFFFF Reserved
  135. ** 0xFF804000 - 0xFF807FFF Data Bank A SRAM / cache (16K)
  136. ** 0xFF800000 - 0xFF803FFF Data Bank A SRAM (16K)
  137. ** 0xEF000000 - 0xFF7FFFFF Reserved
  138. ** 0x20400000 - 0xEEFFFFFF Reserved
  139. ** 0x20300000 - 0x203FFFFF ASYNC MEMORY BANK 3 (1MB)
  140. ** 0x20200000 - 0x202FFFFF ASYNC MEMORY BANK 2 (1MB)
  141. ** 0x20100000 - 0x201FFFFF ASYNC MEMORY BANK 1 (1MB)
  142. ** 0x20000000 - 0x200FFFFF ASYNC MEMORY BANK 0 (1MB)
  143. ** 0x00000000 - 0x07FFFFFF SDRAM MEMORY (16MB - 128MB)
  144. */
  145. MEM_L1_SCRATCH { TYPE(RAM) START(0xFFB00000) END(0xFFB00FFF) WIDTH(8) }
  146. MEM_L1_CODE_CACHE { TYPE(RAM) START(0xFFA10000) END(0xFFA13FFF) WIDTH(8) }
  147. MEM_L1_CODE { TYPE(RAM) START(0xFFA00000) END(0xFFA0FFFF) WIDTH(8) }
  148. MEM_L1_DATA_B { TYPE(RAM) START(0xFF900000) END(0xFF907FFF) WIDTH(8) }
  149. MEM_L1_DATA_A { TYPE(RAM) START(0xFF800000) END(0xFF807FFF) WIDTH(8) }
  150. MEM_ASYNC3 { TYPE(ASYNC3_MEMTYPE) START(0x20300000) END(0x203FFFFF) WIDTH(8) }
  151. MEM_ASYNC2 { TYPE(ASYNC2_MEMTYPE) START(0x20200000) END(0x202FFFFF) WIDTH(8) }
  152. MEM_ASYNC1 { TYPE(ASYNC1_MEMTYPE) START(0x20100000) END(0x201FFFFF) WIDTH(8) }
  153. MEM_ASYNC0 { TYPE(ASYNC0_MEMTYPE) START(0x20000000) END(0x200FFFFF) WIDTH(8) }
  154. /*$VDSG<insert-new-memory-segments> */
  155. /* Text inserted between these $VDSG comments will be preserved */
  156. /*$VDSG<insert-new-memory-segments> */
  157. } /* MEMORY */
  158. PROCESSOR p0
  159. {
  160. OUTPUT($COMMAND_LINE_OUTPUT_FILE)
  161. RESOLVE(start, 0xFFA00000)
  162. KEEP(start, _main)
  163. KEEP_SECTIONS(FSymTab,VSymTab,RTMSymTab)
  164. /*$VDSG<insert-user-ldf-commands> */
  165. /* Text inserted between these $VDSG comments will be preserved */
  166. /*$VDSG<insert-user-ldf-commands> */
  167. SECTIONS
  168. {
  169. /* Workaround for hardware errata 05-00-0189 and 05-00-0310 -
  170. ** "Speculative (and fetches made at boundary of reserved memory
  171. ** space) for instruction or data fetches may cause false
  172. ** protection exceptions" and "False hardware errors caused by
  173. ** fetches at the boundary of reserved memory ".
  174. **
  175. ** Done by avoiding use of 76 bytes from at the end of blocks
  176. ** that are adjacent to reserved memory. Workaround is enabled
  177. ** for appropriate silicon revisions (-si-revision switch).
  178. */
  179. RESERVE(___wab0=MEMORY_END(MEM_L1_SCRATCH) - 75, ___l0 = 76)
  180. RESERVE(___wab2=MEMORY_END(MEM_L1_CODE) - 75, ___l2 = 76)
  181. RESERVE(___wab4=MEMORY_END(MEM_L1_DATA_B) - 75, ___l4 = 76)
  182. RESERVE(___wab6=MEMORY_END(MEM_L1_DATA_A) - 75, ___l6 = 76)
  183. RESERVE(___wab7=MEMORY_END(MEM_ASYNC3) - 75, ___l7 = 76)
  184. /*$VDSG<insert-new-sections-at-the-start> */
  185. /* Text inserted between these $VDSG comments will be preserved */
  186. /*$VDSG<insert-new-sections-at-the-start> */
  187. scratchpad NO_INIT
  188. {
  189. INPUT_SECTION_ALIGN(4)
  190. /*$VDSG<insert-input-sections-at-the-start-of-scratchpad> */
  191. /* Text inserted between these $VDSG comments will be preserved */
  192. /*$VDSG<insert-input-sections-at-the-start-of-scratchpad> */
  193. INPUT_SECTIONS($OBJECTS(L1_scratchpad) $LIBRARIES(L1_scratchpad))
  194. /*$VDSG<insert-input-sections-at-the-end-of-scratchpad> */
  195. /* Text inserted between these $VDSG comments will be preserved */
  196. /*$VDSG<insert-input-sections-at-the-end-of-scratchpad> */
  197. } > MEM_L1_SCRATCH
  198. L1_code
  199. {
  200. INPUT_SECTION_ALIGN(4)
  201. INPUT_SECTIONS($OBJECTS(L1_code) $LIBRARIES(L1_code))
  202. /*$VDSG<insert-input-sections-at-the-start-of-l1_code> */
  203. /* Text inserted between these $VDSG comments will be preserved */
  204. /*$VDSG<insert-input-sections-at-the-start-of-l1_code> */
  205. INPUT_SECTIONS($OBJECTS(cplb_code) $LIBRARIES(cplb_code))
  206. INPUT_SECTIONS($OBJECTS(cplb) $LIBRARIES(cplb))
  207. INPUT_SECTIONS($OBJECTS(noncache_code) $LIBRARIES(noncache_code))
  208. INPUT_SECTIONS($OBJS_LIBS_INTERNAL(program))
  209. INPUT_SECTIONS($OBJS_LIBS_NOT_EXTERNAL(program))
  210. INPUT_SECTIONS($OBJECTS(program) $LIBRARIES(program))
  211. /*$VDSG<insert-input-sections-at-the-end-of-l1_code> */
  212. /* Text inserted between these $VDSG comments will be preserved */
  213. /*$VDSG<insert-input-sections-at-the-end-of-l1_code> */
  214. } > MEM_L1_CODE
  215. L1_code_cache
  216. {
  217. INPUT_SECTION_ALIGN(4)
  218. ___l1_code_cache = 1;
  219. } > MEM_L1_CODE_CACHE
  220. L1_data_a_1
  221. {
  222. INPUT_SECTION_ALIGN(4)
  223. ___l1_data_cache_a = 0;
  224. INPUT_SECTIONS($OBJECTS(L1_data_a) $LIBRARIES(L1_data_a))
  225. INPUT_SECTIONS($OBJECTS(L1_data) $LIBRARIES(L1_data))
  226. /*$VDSG<insert-input-sections-at-the-start-of-L1_data_a> */
  227. /* Text inserted between these $VDSG comments will be preserved */
  228. /*$VDSG<insert-input-sections-at-the-start-of-L1_data_a> */
  229. RESERVE(heaps_and_stack_in_L1_data_a, heaps_and_stack_in_L1_data_a_length = 1024,4)
  230. } > MEM_L1_DATA_A
  231. L1_data_a_bsz ZERO_INIT
  232. {
  233. INPUT_SECTION_ALIGN(4)
  234. INPUT_SECTIONS( $OBJECTS(L1_bsz) $LIBRARIES(L1_bsz))
  235. } > MEM_L1_DATA_A
  236. L1_data_a_tables
  237. {
  238. INPUT_SECTION_ALIGN(4)
  239. FORCE_CONTIGUITY
  240. INPUT_SECTIONS($OBJECTS(vtbl) $LIBRARIES(vtbl))
  241. INPUT_SECTIONS($OBJECTS(ctor) $LIBRARIES(ctor))
  242. INPUT_SECTIONS($OBJECTS(ctorl) $LIBRARIES(ctorl))
  243. INPUT_SECTIONS($OBJECTS(.frt) $LIBRARIES(.frt))
  244. INPUT_SECTIONS($OBJECTS(.rtti) $LIBRARIES(.rtti))
  245. INPUT_SECTIONS($OBJECTS(.gdt) $LIBRARIES(.gdt))
  246. INPUT_SECTIONS($OBJECTS(.gdtl) $LIBRARIES(.gdtl))
  247. INPUT_SECTIONS($OBJECTS(.edt) $LIBRARIES(.edt))
  248. INPUT_SECTIONS($OBJECTS(.cht) $LIBRARIES(.cht))
  249. } > MEM_L1_DATA_A
  250. L1_data_a
  251. {
  252. INPUT_SECTION_ALIGN(4)
  253. INPUT_SECTIONS($OBJECTS(cplb_data) $LIBRARIES(cplb_data))
  254. INPUT_SECTIONS($OBJECTS(voldata) $LIBRARIES(voldata))
  255. INPUT_SECTIONS($OBJS_LIBS_INTERNAL(data1))
  256. INPUT_SECTIONS($OBJS_LIBS_NOT_EXTERNAL(data1))
  257. INPUT_SECTIONS($OBJECTS(data1) $LIBRARIES(data1))
  258. INPUT_SECTIONS($OBJECTS(constdata) $LIBRARIES(constdata))
  259. /*$VDSG<insert-input-sections-at-the-end-of-L1_data_a> */
  260. /* Text inserted between these $VDSG comments will be preserved */
  261. /*$VDSG<insert-input-sections-at-the-end-of-L1_data_a> */
  262. } > MEM_L1_DATA_A
  263. bsz_L1_data_a ZERO_INIT
  264. {
  265. INPUT_SECTION_ALIGN(4)
  266. INPUT_SECTIONS($OBJS_LIBS_INTERNAL(bsz))
  267. INPUT_SECTIONS($OBJS_LIBS_NOT_EXTERNAL(bsz))
  268. INPUT_SECTIONS($OBJECTS(bsz) $LIBRARIES(bsz))
  269. } > MEM_L1_DATA_A
  270. L1_data_a_stack_heap
  271. {
  272. INPUT_SECTION_ALIGN(4)
  273. RESERVE_EXPAND(heaps_and_stack_in_L1_data_a, heaps_and_stack_in_L1_data_a_length , 0, 4)
  274. ldf_stack_space = heaps_and_stack_in_L1_data_a;
  275. ldf_stack_end = (ldf_stack_space + (heaps_and_stack_in_L1_data_a_length - 4)) & 0xfffffffc;
  276. } > MEM_L1_DATA_A
  277. L1_data_b_bsz ZERO_INIT
  278. {
  279. INPUT_SECTION_ALIGN(4)
  280. INPUT_SECTIONS( $OBJECTS(L1_bsz) $LIBRARIES(L1_bsz))
  281. } > MEM_L1_DATA_B
  282. L1_data_b
  283. {
  284. INPUT_SECTION_ALIGN(4)
  285. ___l1_data_cache_b = 0;
  286. INPUT_SECTIONS($OBJECTS(L1_data_b) $LIBRARIES(L1_data_b))
  287. INPUT_SECTIONS($OBJECTS(L1_data) $LIBRARIES(L1_data))
  288. /*$VDSG<insert-input-sections-at-the-start-of-L1_data_b> */
  289. /* Text inserted between these $VDSG comments will be preserved */
  290. /*$VDSG<insert-input-sections-at-the-start-of-L1_data_b> */
  291. RESERVE(heaps_and_stack_in_L1_data_b, heaps_and_stack_in_L1_data_b_length = 1024,4)
  292. INPUT_SECTIONS($OBJECTS(cplb_data) $LIBRARIES(cplb_data))
  293. INPUT_SECTIONS($OBJECTS(voldata) $LIBRARIES(voldata))
  294. INPUT_SECTIONS($OBJS_LIBS_INTERNAL(data1))
  295. INPUT_SECTIONS($OBJS_LIBS_NOT_EXTERNAL(data1))
  296. INPUT_SECTIONS($OBJECTS(data1) $LIBRARIES(data1))
  297. INPUT_SECTIONS($OBJECTS(constdata) $LIBRARIES(constdata))
  298. INPUT_SECTIONS($OBJECTS(.edt) $LIBRARIES(.edt) )
  299. INPUT_SECTIONS($OBJECTS(.cht) $LIBRARIES(.cht) )
  300. /*$VDSG<insert-input-sections-at-the-end-of-L1_data_b> */
  301. /* Text inserted between these $VDSG comments will be preserved */
  302. /*$VDSG<insert-input-sections-at-the-end-of-L1_data_b> */
  303. } > MEM_L1_DATA_B
  304. bsz_L1_data_b ZERO_INIT
  305. {
  306. INPUT_SECTION_ALIGN(4)
  307. INPUT_SECTIONS($OBJS_LIBS_INTERNAL(bsz))
  308. INPUT_SECTIONS($OBJS_LIBS_NOT_EXTERNAL(bsz))
  309. INPUT_SECTIONS($OBJECTS(bsz) $LIBRARIES(bsz))
  310. } > MEM_L1_DATA_B
  311. rt_thread_section
  312. {
  313. /* section information for finsh shell */
  314. INPUT_SECTION_ALIGN(4)
  315. __fsymtab_start = .;
  316. INPUT_SECTIONS($OBJECTS(FSymTab) $LIBRARIES(FSymTab))
  317. __fsymtab_end = .;
  318. INPUT_SECTION_ALIGN(4)
  319. __vsymtab_start = .;
  320. INPUT_SECTIONS($OBJECTS(VSymTab) $LIBRARIES(VSymTab))
  321. __vsymtab_end = .;
  322. /* section information for modules */
  323. INPUT_SECTION_ALIGN(4)
  324. __rtmsymtab_start = .;
  325. INPUT_SECTIONS($OBJECTS(RTMSymTab) $LIBRARIES(RTMSymTab))
  326. __rtmsymtab_end = .;
  327. RESERVE(heaps_in_L1_data_b_space, heaps_in_L1_data_b_length = 2048,4)
  328. } > MEM_L1_DATA_B
  329. L1_data_b_stack_heap
  330. {
  331. INPUT_SECTION_ALIGN(4)
  332. ldf_heap_space = heaps_and_stack_in_L1_data_b;
  333. ldf_heap_end = (ldf_heap_space + (heaps_and_stack_in_L1_data_b_length - 4)) & 0xfffffffc;
  334. ldf_heap_length = ldf_heap_end - ldf_heap_space;
  335. RESERVE_EXPAND(heaps_in_L1_data_b_space, heaps_in_L1_data_b_length , 0, 4)
  336. rtt_heap_start = heaps_in_L1_data_b_space;
  337. rtt_heap_end = (heaps_in_L1_data_b_space + heaps_in_L1_data_b_length - 4) & 0xfffffffc;
  338. rtt_heap_length = rtt_heap_end - rtt_heap_start;
  339. } > MEM_L1_DATA_B
  340. /*$VDSG<insert-new-sections-at-the-end> */
  341. /* Text inserted between these $VDSG comments will be preserved */
  342. /*$VDSG<insert-new-sections-at-the-end> */
  343. } /* SECTIONS */
  344. } /* p0 */