OSDN Git Service

Sメーター周りを修正
[trx-305dsp/dsp.git] / hirado / kernel / tools / blackfin-vdsp / talkthrough_ezkit_bf533 / ezkit_BF533.ldf
1 /*\r
2 ** LDF for ADSP-BF533.\r
3 ** \r
4 ** There are a number of configuration options that can be specified\r
5 ** either by compiler flags, or by linker flags directly. The options are:\r
6 ** \r
7 ** USE_PROFILER0\r
8 **  Enabled by -p. Link in profiling library, and write results to\r
9 **  both stdout and mon.out.\r
10 ** USE_PROFILER1\r
11 **  Enabled by -p1. Only write profiling data to mon.out.\r
12 ** USE_PROFILER2\r
13 **  Enabled by -p2. Only write profiling data to stdout.\r
14 ** USE_PROFILER\r
15 **  Equivalent to USE_PROFILER0.\r
16 ** __WORKAROUNDS_ENABLED\r
17 **    Defined by compiler when -workaround is used to direct LDF to\r
18 **    link with libraries that have been built with work-arounds\r
19 **    enabled.\r
20 ** USE_FILEIO\r
21 **    Always defined; enables the File I/O Support, which is necessary\r
22 **    for printf() to produce any output.\r
23 ** USE_CACHE\r
24 **  Makes use of Some L1 memory as cache. Implies the presence\r
25 **  of at least some external memory.\r
26 ** USE_SDRAM\r
27 **     Makes SDRAM available as standard program/data memory, with no\r
28 **     cache configuration of L1. Heap space is moved into SDRAM.\r
29 ** PARTITION_EZKIT_SDRAM\r
30 **    The ADSP-BF533 is supplied with one external bank populated with\r
31 **    with 32MB of SDRAM. The ADSP-BF533 EBIU allows for 4 internal banks\r
32 **    in an external SDRAM bank to be accessed simultaneously, reducing the\r
33 **    stall on access compared to keeping program and data in one bank.\r
34 **    Defining this macro partitions the SDRAM into 4 8MB banks with the\r
35 **    intention of use being: bank0 - heap, bank1 - data, bank2 - data/bsz,\r
36 **    bank3 - program. See 533 Hardware Reference Manual, 17-22, SDRAM\r
37 **    controler.\r
38 **    NOTE: Either USE_CACHE or USE_SDRAM must also be defined to use this.\r
39 ** USER_CRT\r
40 **    Specifies a custom or System Builder generated CRT object to use.\r
41 ** _ADI_LIBIO\r
42 **   Use the ADI io library (default and fast)\r
43 ** _DINKUM_IO\r
44 **   Use dinkum io library (slower but more compatible). Enabled\r
45 **   by the flag -full-io\r
46 */\r
47 \r
48 #define USER_CRT\r
49 \r
50 ARCHITECTURE(ADSP-BF533)\r
51 \r
52 #ifndef __NO_STD_LIB\r
53 SEARCH_DIR( $ADI_DSP/Blackfin/lib )\r
54 #endif\r
55 \r
56 /* Moving to primIO means that we must always include the FileIO support,\r
57 ** so that printf() will work.\r
58 */\r
59 \r
60 #ifndef USE_FILEIO  /* { */\r
61 #define USE_FILEIO 1\r
62 #endif  /* } */\r
63 \r
64 #ifdef USE_PROFILER /* { */\r
65 #define USE_PROFILER0\r
66 #endif  /* } */\r
67 \r
68 #ifdef USE_PROFILER0    /* { */\r
69 #ifdef __WORKAROUNDS_ENABLED    /* { */\r
70 #define PROFFLAG , prfflg0_532y.doj\r
71 #else\r
72 #define PROFFLAG , prfflg0_532.doj\r
73 #endif  /* } */\r
74 // The profiler needs File I/O to write its results.\r
75 #define USE_FILEIO 1\r
76 #ifndef USE_PROFILER    /* { */\r
77 #define USE_PROFILER\r
78 #endif  /* } */\r
79 #endif  /* } */\r
80 \r
81 #ifdef USE_PROFILER1    /* { */\r
82 #ifdef __WORKAROUNDS_ENABLED    /* { */\r
83 #define PROFFLAG , prfflg1_532y.doj\r
84 #else\r
85 #define PROFFLAG , prfflg1_532.doj\r
86 #endif  /* } */\r
87 #define USE_FILEIO 1\r
88 #ifndef USE_PROFILER    /* { */\r
89 #define USE_PROFILER\r
90 #endif  /* } */\r
91 #endif  /* } */\r
92 \r
93 #ifdef USE_PROFILER2    /* { */\r
94 #ifdef __WORKAROUNDS_ENABLED    /* { */\r
95 #define PROFFLAG , prfflg2_532y.doj\r
96 #else\r
97 #define PROFFLAG , prfflg2_532.doj\r
98 #endif  /* } */\r
99 #define USE_FILEIO 1\r
100 #ifndef USE_PROFILER    /* { */\r
101 #define USE_PROFILER\r
102 #endif  /* } */\r
103 #endif  /* } */\r
104 \r
105 #ifndef PROFFLAG    /* { */\r
106 #define PROFFLAG\r
107 #endif  /* } */\r
108 \r
109 #ifdef __WORKAROUNDS_ENABLED    /* { */\r
110 #define OMEGA idle532y.doj\r
111 #else\r
112 #define OMEGA idle532.doj\r
113 #endif  /* } */\r
114 \r
115 #define MEMINIT __initsbsz532.doj,\r
116 \r
117 #ifdef __WORKAROUNDS_ENABLED    /* { */\r
118 #define LIBSMALL libsmall532y.dlb,\r
119 #define FLT64  libf64ieee532y.dlb\r
120 #else\r
121 #define LIBSMALL libsmall532.dlb,\r
122 #define FLT64  libf64ieee532.dlb\r
123 #endif  /* } */\r
124 \r
125 #ifdef M3_RESERVED  /* { */\r
126 #ifdef __WORKAROUNDS_ENABLED    /* { */\r
127 #define LIBM3 libm3res532y.dlb\r
128 #define LIBDSP libdspm3res532y.dlb\r
129 #define SFTFLT libsftflt532y.dlb\r
130 #else\r
131 #define LIBM3 libm3res532.dlb\r
132 #define LIBDSP libdspm3res532.dlb\r
133 #define SFTFLT libsftflt532.dlb\r
134 #endif  /* } */\r
135 #else\r
136 #ifdef __WORKAROUNDS_ENABLED    /* { */\r
137 #define LIBM3 libm3free532y.dlb\r
138 #define LIBDSP libdsp532y.dlb\r
139 #define SFTFLT libsftflt532y.dlb\r
140 #else\r
141 #define LIBM3 libm3free532.dlb\r
142 #define LIBDSP libdsp532.dlb\r
143 #define SFTFLT libsftflt532.dlb\r
144 #endif  /* } */\r
145 #endif  /* } */\r
146 \r
147 #ifdef IEEEFP   /* { */\r
148 #define FPLIBS SFTFLT, FLT64, LIBDSP\r
149 #else\r
150 #define FPLIBS FLT64, LIBDSP, SFTFLT\r
151 #endif  /* } */\r
152 \r
153 #ifdef __WORKAROUNDS_ENABLED\r
154 #ifdef _DINKUM_IO\r
155 #define LIBC libc532y.dlb, librt_fileio532y.dlb, libio532y.dlb,\r
156 #else //_DINKUM_IO\r
157 #define LIBC libio532y.dlb, libc532y.dlb,\r
158 #endif\r
159 #else //__WORKAROUNDS_ENABLED\r
160 #ifdef _DINKUM_IO\r
161 #define LIBC libc532.dlb, librt_fileio532.dlb, libio532.dlb,\r
162 #else //_DINKUM_IO\r
163 #define LIBC libio532.dlb, libc532.dlb,\r
164 #endif\r
165 #endif\r
166 \r
167 #ifdef __WORKAROUNDS_ENABLED    /* { */\r
168 #ifdef __ADI_LIBEH__\r
169 #define LIBS LIBSMALL MEMINIT LIBC LIBM3, libevent532y.dlb, libx532y.dlb, libcpp532yx.dlb, libcpprt532yx.dlb, FPLIBS, libetsi532.dlb, libssl532y.dlb, libdrv532y.dlb, OMEGA\r
170 #else\r
171 #define LIBS LIBSMALL MEMINIT LIBC LIBM3, libevent532y.dlb, libx532y.dlb, libcpp532y.dlb, libcpprt532y.dlb, FPLIBS, libetsi532.dlb, libssl532y.dlb, libdrv532y.dlb, OMEGA\r
172 #endif\r
173 #else\r
174 #ifdef __ADI_LIBEH__\r
175 #define LIBS LIBSMALL MEMINIT LIBC LIBM3, libevent532.dlb, libx532.dlb, libcpp532x.dlb, libcpprt532x.dlb, FPLIBS, libetsi532.dlb, libssl532.dlb, libdrv532.dlb, OMEGA\r
176 #else\r
177 #define LIBS LIBSMALL MEMINIT LIBC LIBM3, libevent532.dlb, libx532.dlb,  libcpp532.dlb, libcpprt532.dlb, FPLIBS, libetsi532.dlb, libssl532.dlb, libdrv532.dlb, OMEGA\r
178 #endif\r
179 #endif  /* } */\r
180 #if defined(USE_FILEIO) || defined(USE_PROFGUIDE)\r
181 #ifdef __WORKAROUNDS_ENABLED    /* { */\r
182 $LIBRARIES = LIBS, librt_fileio532y.dlb;\r
183 #else\r
184 $LIBRARIES = LIBS, librt_fileio532.dlb;\r
185 #endif  /* } */\r
186 #else\r
187 #ifdef __WORKAROUNDS_ENABLED    /* { */\r
188 $LIBRARIES = LIBS, librt532y.dlb;\r
189 #else\r
190 $LIBRARIES = LIBS, librt532.dlb;\r
191 #endif  /* } */\r
192 #endif  /* } */\r
193 \r
194 // Libraries from the command line are included in COMMAND_LINE_OBJECTS.\r
195 \r
196 // If USER_CRT is defined to be a custom/SystemBuilder generated\r
197 // CRT file then link with that, otherwise determine which of the\r
198 // precompiled objects to use.\r
199 #ifdef USER_CRT /* { */\r
200 #ifdef __WORKAROUNDS_ENABLED /* { */\r
201 #define CRT USER_CRT libprofile532y.dlb PROFFLAG\r
202 #else\r
203 #define CRT USER_CRT libprofile532.dlb PROFFLAG\r
204 #endif /* } */\r
205 #else\r
206 #ifdef USE_PROFILER /* { */\r
207 #ifdef USE_FILEIO   /* { */\r
208 #ifdef __WORKAROUNDS_ENABLED    /* { */\r
209 #define CRT crtsfpc532y.doj, libprofile532y.dlb PROFFLAG\r
210 #else\r
211 #define CRT crtsfpc532.doj, libprofile532.dlb PROFFLAG\r
212 #endif  /* } */\r
213 #else\r
214 #ifdef __WORKAROUNDS_ENABLED    /* { */\r
215 #define CRT crtscp532y.doj, libprofile532y.dlb PROFFLAG\r
216 #else\r
217 #define CRT crtscp532.doj, libprofile532.dlb PROFFLAG\r
218 #endif  /* } */\r
219 #endif  /* USE_FILEIO */    /* } */\r
220 #else\r
221 #ifdef USE_FILEIO   /* { */\r
222 #ifdef __WORKAROUNDS_ENABLED    /* { */\r
223 #define CRT  crtsfc532y.doj\r
224 #else\r
225 #define CRT  crtsfc532.doj\r
226 #endif  /* } */\r
227 #else\r
228 #ifdef __WORKAROUNDS_ENABLED    /* { */\r
229 #define CRT  crtsc532y.doj\r
230 #else\r
231 #define CRT  crtsc532.doj\r
232 #endif  /* } */\r
233 #endif  /* USE_FILEIO */    /* } */\r
234 #endif  /* USE_PROFILER */  /* } */\r
235 #endif /* USER_CRT } */\r
236 \r
237 #ifdef __WORKAROUNDS_ENABLED    /* { */\r
238 #define ENDCRT , crtn532y.doj\r
239 #else\r
240 #define ENDCRT , crtn532.doj\r
241 #endif  /* } */\r
242 \r
243 $OBJECTS = CRT, $COMMAND_LINE_OBJECTS ,cplbtab533.doj ENDCRT;\r
244 \r
245 MEMORY\r
246 {\r
247 MEM_SYS_MMRS  { /* System memory-mapped registers - 2MB */\r
248     TYPE(RAM) WIDTH(8)\r
249     START(0xFFC00000) END(0xFFDFFFFF)\r
250 }\r
251 MEM_L1_SCRATCH  {\r
252     TYPE(RAM) WIDTH(8)\r
253     START(0xFFB00000) END(0xFFB00FFF)\r
254 }\r
255 /* Instruction SRAM, 80K, some useable as cache */\r
256 MEM_L1_CODE_CACHE { /* L1 Instruction SRAM/Cache - 16K */\r
257     TYPE(RAM) WIDTH(8)\r
258     START(0xFFA10000) END(0xFFA13FFF)\r
259 }\r
260 MEM_L1_CODE {   /* L1 Instruction - 64K */\r
261     TYPE(RAM) WIDTH(8)\r
262     START(0xFFA00000) END(0xFFA0FFFF)\r
263 }\r
264 /* Data Bank B - 32K, half usable as cache. */\r
265 /* Split into sections for program layout. */\r
266 /* Data - normal data, 16K */\r
267 #ifdef USE_CACHE /* { */\r
268 MEM_L1_DATA_B_CACHE {   /* L1 Data B SRAM/Cache - 16K */\r
269     TYPE(RAM) WIDTH(8)\r
270     START(0xFF904000) END(0xFF907FFF)\r
271 }\r
272 MEM_L1_DATA_B       {   /* L1 Data B SRAM - half of 16K */\r
273     TYPE(RAM) WIDTH(8)\r
274     START(0xFF902000) END(0xFF903FFF)\r
275 }\r
276 #else /*  } { USE_CACHE */\r
277 MEM_L1_DATA_B       {   /* L1 Data B SRAM - half of 16K + 16K */\r
278     TYPE(RAM) WIDTH(8)\r
279     START(0xFF902000) END(0xFF907FFF)\r
280 }\r
281 #endif /* } USE_CACHE */\r
282 /* Stack - 8K */\r
283 MEM_L1_DATA_B_STACK       { /* L1 Data B SRAM cont. - other half of 16K */\r
284     TYPE(RAM) WIDTH(8)\r
285     START(0xFF900000) END(0xFF901FFF)\r
286 }\r
287 /* Data Bank A - 32K, half usable as cache. */\r
288 /* Split into sections for program layout. */\r
289 /* Data - normal data, 16K. */\r
290 /* If cache disabled use MEM_L1_DATA_A_CACHE for heap else use SRAM */\r
291 MEM_L1_DATA_A_CACHE        {    /* L1 Data A SRAM/Cache - 16K */\r
292     TYPE(RAM) WIDTH(8)\r
293     START(0xFF804000) END(0xFF807FFF)\r
294 }\r
295 #ifdef IDDE_ARGS\r
296 MEM_ARGV        {\r
297 #define ARGV_START 0xFF803F00\r
298     TYPE(RAM) WIDTH(8)\r
299     START(0xFF803F00) END(0xFF803FFF)\r
300 }\r
301 MEM_L1_DATA_A        {  /* L1 Data A SRAM - most of 16K */\r
302     TYPE(RAM) WIDTH(8)\r
303     START(0xFF800000) END(0xFF803EFF)\r
304 }\r
305 #else\r
306 MEM_L1_DATA_A        {  /* L1 Data A SRAM - 16K */\r
307     TYPE(RAM) WIDTH(8)\r
308     START(0xFF800000) END(0xFF803FFF)\r
309 }\r
310 #endif\r
311 MEM_ASYNC3     {    /* Async Bank 3 - 1MB */\r
312     TYPE(RAM) WIDTH(8)\r
313     START(0x20300000) END(0x203FFFFF)\r
314 }\r
315 MEM_ASYNC2     {    /* Async Bank 2 - 1MB */\r
316     TYPE(RAM) WIDTH(8)\r
317     START(0x20200000) END(0x202FFFFF)\r
318 }\r
319 MEM_ASYNC1     {    /* Async Bank 1 - 1MB */\r
320     TYPE(RAM) WIDTH(8)\r
321     START(0x20100000) END(0x201FFFFF)\r
322 }\r
323 MEM_ASYNC0     {    /* Async Bank 0 - 1MB */\r
324     TYPE(RAM) WIDTH(8)\r
325     START(0x20000000) END(0x200FFFFF)\r
326 }\r
327 \r
328 #ifdef PARTITION_EZKIT_SDRAM\r
329 MEM_SDRAM0_BANK0  { /* SDRAM: Ext Bank0, Int Bank0: 8MB */\r
330     /* Used for heap */\r
331     TYPE(RAM) WIDTH(8)\r
332     START(0x00000004) END(0x007FFFFF)\r
333 }\r
334 MEM_SDRAM0_BANK1  { /* SDRAM: Ext Bank0, Int Bank1: 8MB */\r
335     /* Used for data */\r
336     TYPE(RAM) WIDTH(8)\r
337     START(0x00800000) END(0x00FFFFFF)\r
338 }\r
339 MEM_SDRAM0_BANK2  { /* SDRAM: Ext Bank0, Int Bank2: 8MB */\r
340     /* Used for data/bsz */\r
341     TYPE(RAM) WIDTH(8)\r
342     START(0x01000000) END(0x017FFFFF)\r
343 }\r
344 MEM_SDRAM0_BANK3  { /* SDRAM: Ext Bank0, Int Bank3: 8MB */\r
345     /* Used for program */\r
346     TYPE(RAM) WIDTH(8)\r
347     START(0x01800000) END(0x01FFFFFF)\r
348 }\r
349 #else\r
350 /* Claim some of SDRAM Bank 0 for heap */\r
351 /* since it needs a separate section */\r
352 \r
353 MEM_SDRAM0     {    /* SDRAM Bank 0 - 16MB-128M */\r
354     TYPE(RAM) WIDTH(8)\r
355     START(0x00004000) END(0x07FFFFFF)\r
356 }\r
357 MEM_SDRAM0_HEAP     {   /* Claim some for ext heap - 16K */\r
358     TYPE(RAM) WIDTH(8)\r
359     START(0x00000004) END(0x00003FFF)\r
360 }\r
361 #endif\r
362 }\r
363 \r
364 PROCESSOR P0\r
365 {\r
366     OUTPUT( $COMMAND_LINE_OUTPUT_FILE )\r
367 \r
368     /* Following address must match start of MEM_PROGRAM */\r
369     RESOLVE(start,0xffa00000)\r
370 #ifdef IDDE_ARGS\r
371     RESOLVE(___argv_string, ARGV_START)\r
372 #endif\r
373     KEEP(start,_main)\r
374 \r
375     SECTIONS\r
376     {\r
377         program_ram\r
378         {\r
379             INPUT_SECTION_ALIGN(4)\r
380             INPUT_SECTIONS( $OBJECTS(L1_code) $LIBRARIES(L1_code))\r
381             INPUT_SECTIONS( $OBJECTS(cplb_code) $LIBRARIES(cplb_code))\r
382             INPUT_SECTIONS( $OBJECTS(cplb) $LIBRARIES(cplb))\r
383             INPUT_SECTIONS( $OBJECTS(noncache_code) $LIBRARIES(noncache_code))\r
384             INPUT_SECTIONS( $OBJECTS(program) $LIBRARIES(program))\r
385         } >MEM_L1_CODE\r
386 \r
387 #ifndef USE_CACHE\r
388         l1_code\r
389         {\r
390             INPUT_SECTION_ALIGN(4)\r
391             ___l1_code_cache = 0;\r
392             INPUT_SECTIONS( $OBJECTS(L1_code) $LIBRARIES(L1_code))\r
393             INPUT_SECTIONS( $OBJECTS(cplb_code) $LIBRARIES(cplb_code))\r
394             INPUT_SECTIONS( $OBJECTS(cplb) $LIBRARIES(cplb))\r
395             INPUT_SECTIONS( $OBJECTS(program) $LIBRARIES(program))\r
396         } >MEM_L1_CODE_CACHE\r
397 #endif /* USE_CACHE */\r
398 \r
399         data_L1_data_a\r
400         {\r
401             INPUT_SECTION_ALIGN(4)\r
402 #ifndef USE_CACHE\r
403             ___l1_data_cache_a = 0;\r
404 #endif\r
405             INPUT_SECTIONS( $OBJECTS(L1_data_a) $LIBRARIES(L1_data_a))\r
406                INPUT_SECTIONS( $OBJECTS(vtbl) $LIBRARIES(vtbl) )\r
407                INPUT_SECTIONS( $OBJECTS(.frt) $LIBRARIES(.frt) )\r
408                INPUT_SECTIONS( $OBJECTS(.frtl) $LIBRARIES(.frtl) )\r
409                INPUT_SECTIONS( $OBJECTS(ctor) $LIBRARIES(ctor) )\r
410                INPUT_SECTIONS( $OBJECTS(ctorl) $LIBRARIES(ctorl) )\r
411                INPUT_SECTIONS( $OBJECTS(.gdt) $LIBRARIES(.gdt) )\r
412                INPUT_SECTIONS( $OBJECTS(.gdtl) $LIBRARIES(.gdtl) )\r
413                INPUT_SECTIONS( $OBJECTS(.edt) $LIBRARIES(.edt) )\r
414                INPUT_SECTIONS( $OBJECTS(.cht) $LIBRARIES(.cht) )\r
415             INPUT_SECTIONS( $OBJECTS(cplb_data) $LIBRARIES(cplb_data))\r
416             INPUT_SECTIONS($OBJECTS(data1) $LIBRARIES(data1))\r
417             INPUT_SECTIONS($OBJECTS(voldata) $LIBRARIES(voldata))\r
418         } >MEM_L1_DATA_A\r
419 \r
420         constdata_L1_data_a\r
421         {\r
422             INPUT_SECTION_ALIGN(4)\r
423             INPUT_SECTIONS($OBJECTS(constdata) $LIBRARIES(constdata))\r
424         } >MEM_L1_DATA_A\r
425 \r
426         data_L1_data_b\r
427         {\r
428             INPUT_SECTION_ALIGN(4)\r
429 #ifndef USE_CACHE\r
430             ___l1_data_cache_b = 0;\r
431 #endif\r
432             INPUT_SECTIONS( $OBJECTS(L1_data_b) $LIBRARIES(L1_data_b))\r
433             INPUT_SECTIONS( $OBJECTS(bsz_init) $LIBRARIES(bsz_init))\r
434                INPUT_SECTIONS( $OBJECTS(.edt) $LIBRARIES(.edt) )\r
435                INPUT_SECTIONS( $OBJECTS(.cht) $LIBRARIES(.cht) )\r
436             INPUT_SECTIONS( $OBJECTS(cplb_data) $LIBRARIES(cplb_data))\r
437             INPUT_SECTIONS($OBJECTS(data1) $LIBRARIES(data1))\r
438             INPUT_SECTIONS($OBJECTS(voldata) $LIBRARIES(voldata))\r
439         } >MEM_L1_DATA_B\r
440 \r
441         .meminit { ALIGN(4) } >MEM_L1_DATA_B\r
442 \r
443         constdata_L1_data_b\r
444         {\r
445             INPUT_SECTION_ALIGN(4)\r
446             INPUT_SECTIONS($OBJECTS(constdata) $LIBRARIES(constdata))\r
447         } >MEM_L1_DATA_B\r
448 \r
449         bsz_L1_data_b ZERO_INIT\r
450         {\r
451             INPUT_SECTION_ALIGN(4)\r
452             INPUT_SECTIONS( $OBJECTS(bsz) $LIBRARIES(bsz))\r
453         } >MEM_L1_DATA_B\r
454 \r
455         bsz_L1_data_a ZERO_INIT\r
456         {\r
457             INPUT_SECTION_ALIGN(4)\r
458             INPUT_SECTIONS( $OBJECTS(bsz) $LIBRARIES(bsz))\r
459         } >MEM_L1_DATA_A\r
460 \r
461 #ifdef USE_CACHE /* { */\r
462         l1_code\r
463         {\r
464             INPUT_SECTION_ALIGN(4)\r
465             ___l1_code_cache = 1;\r
466         } >MEM_L1_CODE_CACHE\r
467 \r
468         l1_data_a_cache\r
469         {\r
470             INPUT_SECTION_ALIGN(4)\r
471             ___l1_data_cache_a = 1;\r
472         } >MEM_L1_DATA_A_CACHE\r
473 \r
474         l1_data_b_cache\r
475         {\r
476             INPUT_SECTION_ALIGN(4)\r
477             ___l1_data_cache_b = 1;\r
478         } >MEM_L1_DATA_B_CACHE\r
479 #endif /* } USE_CACHE */\r
480 \r
481         stack\r
482         {\r
483             ldf_stack_space = .;\r
484             ldf_stack_end = ldf_stack_space + MEMORY_SIZEOF(MEM_L1_DATA_B_STACK);\r
485         } >MEM_L1_DATA_B_STACK\r
486 \r
487 #if defined(USE_CACHE) /* { */\r
488 #if defined(PARTITION_EZKIT_SDRAM) /* { */\r
489         heap\r
490         {\r
491             // Allocate a heap for the application\r
492             ldf_heap_space = .;\r
493             ldf_heap_end = ldf_heap_space + MEMORY_SIZEOF(MEM_SDRAM0_BANK0) - 1;\r
494             ldf_heap_length = ldf_heap_end - ldf_heap_space;        \r
495         } >MEM_SDRAM0_BANK0\r
496 #else \r
497         heap\r
498         {\r
499             // Allocate a heap for the application\r
500             ldf_heap_space = .;\r
501             ldf_heap_end = ldf_heap_space + MEMORY_SIZEOF(MEM_SDRAM0_HEAP) - 1;\r
502             ldf_heap_length = ldf_heap_end - ldf_heap_space;        \r
503         } >MEM_SDRAM0_HEAP\r
504 #endif /* PARTITION_EZKIT_SDRAM } */\r
505 #else\r
506         heap\r
507         {\r
508             // Allocate a heap for the application\r
509             ldf_heap_space = .;\r
510             ldf_heap_end = ldf_heap_space + MEMORY_SIZEOF(MEM_L1_DATA_A_CACHE) - 1;\r
511             ldf_heap_length = ldf_heap_end - ldf_heap_space;        \r
512         } >MEM_L1_DATA_A_CACHE\r
513 #endif /* USE_CACHE } */\r
514 \r
515 #ifdef PARTITION_EZKIT_SDRAM /* { */\r
516        sdram0_bank1\r
517        {\r
518             INPUT_SECTION_ALIGN(4)\r
519             INPUT_SECTIONS( $OBJECTS(sdram0_bank1) $LIBRARIES(sdram0_bank1))\r
520             INPUT_SECTIONS( $OBJECTS(sdram0_data) $LIBRARIES(sdram0_data))\r
521             INPUT_SECTIONS( $OBJECTS(cplb) $LIBRARIES(cplb))\r
522             INPUT_SECTIONS($OBJECTS(data1) $LIBRARIES(data1))\r
523             INPUT_SECTIONS($OBJECTS(voldata) $LIBRARIES(voldata))\r
524             INPUT_SECTIONS($OBJECTS(constdata) $LIBRARIES(constdata))\r
525             INPUT_SECTIONS( $OBJECTS(cplb_data) $LIBRARIES(cplb_data))\r
526                INPUT_SECTIONS( $OBJECTS(.edt) $LIBRARIES(.edt) )\r
527                INPUT_SECTIONS( $OBJECTS(.cht) $LIBRARIES(.cht) )\r
528        } >MEM_SDRAM0_BANK1\r
529 \r
530        sdram0_bank1_bsz ZERO_INIT\r
531        {\r
532             INPUT_SECTION_ALIGN(4)\r
533             INPUT_SECTIONS( $OBJECTS(bsz) $LIBRARIES(bsz))\r
534        } >MEM_SDRAM0_BANK1\r
535 \r
536        sdram0_bank2\r
537        {\r
538             INPUT_SECTION_ALIGN(4)\r
539             INPUT_SECTIONS( $OBJECTS(sdram0_bank1) $LIBRARIES(sdram0_bank1))\r
540             INPUT_SECTIONS( $OBJECTS(sdram0_data) $LIBRARIES(sdram0_data))\r
541             INPUT_SECTIONS( $OBJECTS(cplb) $LIBRARIES(cplb))\r
542             INPUT_SECTIONS($OBJECTS(data1) $LIBRARIES(data1))\r
543             INPUT_SECTIONS($OBJECTS(voldata) $LIBRARIES(voldata))\r
544             INPUT_SECTIONS($OBJECTS(constdata) $LIBRARIES(constdata))\r
545             INPUT_SECTIONS( $OBJECTS(cplb_data) $LIBRARIES(cplb_data))\r
546                INPUT_SECTIONS( $OBJECTS(.edt) $LIBRARIES(.edt) )\r
547                INPUT_SECTIONS( $OBJECTS(.cht) $LIBRARIES(.cht) )\r
548        } >MEM_SDRAM0_BANK2\r
549 \r
550        sdram0_bank2_bsz ZERO_INIT\r
551        {\r
552             INPUT_SECTION_ALIGN(4)\r
553             INPUT_SECTIONS( $OBJECTS(bsz) $LIBRARIES(bsz))\r
554        } >MEM_SDRAM0_BANK2\r
555 \r
556        sdram0_bank3\r
557        {\r
558             INPUT_SECTION_ALIGN(4)\r
559             INPUT_SECTIONS( $OBJECTS(sdram0_bank3) $LIBRARIES(sdram0_bank3))\r
560             INPUT_SECTIONS( $OBJECTS(noncache_code) $LIBRARIES(noncache_code))\r
561             INPUT_SECTIONS( $OBJECTS(program) $LIBRARIES(program))\r
562             INPUT_SECTIONS( $OBJECTS(cplb_code) $LIBRARIES(cplb_code))\r
563        } >MEM_SDRAM0_BANK3\r
564 #else /* PARTITION_EZKIT_SDRAM } { */\r
565 #if defined(USE_CACHE) || defined(USE_SDRAM) /* { */\r
566         sdram\r
567         {\r
568             INPUT_SECTION_ALIGN(4)\r
569             INPUT_SECTIONS( $OBJECTS(sdram0) $LIBRARIES(sdram0))\r
570             INPUT_SECTIONS( $OBJECTS(noncache_code) $LIBRARIES(noncache_code))\r
571             INPUT_SECTIONS( $OBJECTS(program) $LIBRARIES(program))\r
572             INPUT_SECTIONS( $OBJECTS(cplb) $LIBRARIES(cplb))\r
573             INPUT_SECTIONS( $OBJECTS(cplb_code) $LIBRARIES(cplb_code))\r
574             INPUT_SECTIONS($OBJECTS(data1) $LIBRARIES(data1))\r
575             INPUT_SECTIONS($OBJECTS(voldata) $LIBRARIES(voldata))\r
576             INPUT_SECTIONS($OBJECTS(constdata) $LIBRARIES(constdata))\r
577             INPUT_SECTIONS( $OBJECTS(cplb_data) $LIBRARIES(cplb_data))\r
578                INPUT_SECTIONS( $OBJECTS(.edt) $LIBRARIES(.edt) )\r
579                INPUT_SECTIONS( $OBJECTS(.cht) $LIBRARIES(.cht) )\r
580         } >MEM_SDRAM0\r
581 \r
582         bsz_sdram0 ZERO_INIT\r
583         {\r
584             INPUT_SECTION_ALIGN(4)\r
585             INPUT_SECTIONS( $OBJECTS(bsz) $LIBRARIES(bsz))\r
586         } >MEM_SDRAM0\r
587 #endif /* USE_CACHE || USE_SDRAM } */\r
588 #endif /* } */\r
589 \r
590     }\r
591 }\r