5 * Generated Linker Description File
\r
6 * Copyright (C) 2010 HighTec EDV-Systeme GmbH.
\r
7 * (!Do not edit outsite of the protection areas!)
\r
10 * internal flash configuration
\r
14 * Define Entrypoint of Executable
\r
21 /*Program Flash Memory (PFLASH)*/
\r
22 __PMU_PFLASH_BEGIN = 0x80000000;
\r
23 __PMU_PFLASH_SIZE = 2560K;
\r
24 /*Data Flash Memory (DFLASH0)*/
\r
25 __PMU_DFLASH0_BEGIN = 0xAFE00000;
\r
26 __PMU_DFLASH0_SIZE = 64K;
\r
27 /*Data Flash Memory (DFLASH1)*/
\r
28 __PMU_DFLASH1_BEGIN = 0xAFE10000;
\r
29 __PMU_DFLASH1_SIZE = 64K;
\r
30 /*Boot ROM (BROM)*/
\r
31 __BROM_BEGIN = 0xAFFFC000;
\r
33 /*Scratch-Pad RAM (SPRAM)*/
\r
34 __PMI_SPRAM_BEGIN = 0xC0000000;
\r
35 __PMI_SPRAM_SIZE = 40K;
\r
36 /*Local Data RAM (LDRAM)*/
\r
37 __DMI_LDRAM_BEGIN = 0xD0000000;
\r
38 __DMI_LDRAM_SIZE = 128K;
\r
39 /*PCP Code Memory (CMEM)*/
\r
40 __PCP_CMEM_BEGIN = 0xF0060000;
\r
41 __PCP_CMEM_SIZE = 32K;
\r
42 /*PCP Data Memory (PRAM)*/
\r
43 __PCP_PRAM_BEGIN = 0xF0050000;
\r
44 __PCP_PRAM_SIZE = 16K;
\r
46 __ISTACK_SIZE = DEFINED (__ISTACK_SIZE) ? __ISTACK_SIZE : 256;
\r
47 __USTACK_SIZE = DEFINED (__USTACK_SIZE) ? __USTACK_SIZE : 1K;
\r
48 __HEAP_SIZE = DEFINED (__HEAP_SIZE) ? __HEAP_SIZE : 4K ;
\r
49 __CSA_SIZE = DEFINED (__CSA_SIZE) ? __CSA_SIZE : 16K ;
\r
52 * User defined global region
\r
54 /*PROTECTED REGION ID(Protection:iROM-Global) ENABLED START*/
\r
55 /*Protection-Area for your own LDF-Code*/
\r
56 /*PROTECTED REGION END*/
\r
59 * internal flash configuration
\r
63 PMU_PFLASH (rx!p): org = 0x80000000, len = 2560K /*Program Flash Memory (PFLASH)*/
\r
64 PMU_DFLASH0 (r!xp): org = 0xAFE00000, len = 64K /*Data Flash Memory (DFLASH0)*/
\r
65 PMU_DFLASH1 (r!xp): org = 0xAFE10000, len = 64K /*Data Flash Memory (DFLASH1)*/
\r
66 BROM (rx!p): org = 0xAFFFC000, len = 16K /*Boot ROM (BROM)*/
\r
67 PMI_SPRAM (wx!p): org = 0xC0000000, len = 40K /*Scratch-Pad RAM (SPRAM)*/
\r
68 DMI_LDRAM (w!xp): org = 0xD0000000, len = 128K /*Local Data RAM (LDRAM)*/
\r
69 PCP_CMEM (rxp): org = 0xF0060000, len = 32K /*PCP Code Memory (CMEM)*/
\r
70 PCP_PRAM (wp!x): org = 0xF0050000, len = 16K /*PCP Data Memory (PRAM)*/
\r
79 * Startup code for TriCore
\r
83 PROVIDE(__startup_code_start = .);
\r
85 /*PROTECTED REGION ID(Protection: iROM .startup_code.begin) ENABLED START*/
\r
86 /*Protection-Area for your own LDF-Code*/
\r
87 /*PROTECTED REGION END*/
\r
89 *(.startup_code) /*Startup code for TriCore*/
\r
92 /*PROTECTED REGION ID(Protection: iROM .startup_code) ENABLED START*/
\r
93 /*Protection-Area for your own LDF-Code*/
\r
94 /*PROTECTED REGION END*/
\r
96 PROVIDE(__startup_code_end = .);
\r
99 } > PMU_PFLASH /* PMU_PFLASH: Program Flash Memory (PFLASH) */
\r
106 PROVIDE(__text_start = .);
\r
108 /*PROTECTED REGION ID(Protection: iROM .text.begin) ENABLED START*/
\r
109 /*Protection-Area for your own LDF-Code*/
\r
110 /*PROTECTED REGION END*/
\r
112 *(.text) /*Code section*/
\r
114 *(.gnu.linkonce.t.*)
\r
116 /*PROTECTED REGION ID(Protection: iROM .text) ENABLED START*/
\r
117 /*Protection-Area for your own LDF-Code*/
\r
118 /*PROTECTED REGION END*/
\r
120 PROVIDE(__text_end = .);
\r
123 } > PMU_PFLASH /* PMU_PFLASH: Program Flash Memory (PFLASH) */
\r
126 * Code executed before calling main
\r
130 PROVIDE(__init_start = .);
\r
132 /*PROTECTED REGION ID(Protection: iROM .init.begin) ENABLED START*/
\r
133 /*Protection-Area for your own LDF-Code*/
\r
134 /*PROTECTED REGION END*/
\r
136 KEEP(*(.init)) /*Code executed before calling main*/
\r
139 /*PROTECTED REGION ID(Protection: iROM .init) ENABLED START*/
\r
140 /*Protection-Area for your own LDF-Code*/
\r
141 /*PROTECTED REGION END*/
\r
143 PROVIDE(__init_end = .);
\r
146 } > PMU_PFLASH /* PMU_PFLASH: Program Flash Memory (PFLASH) */
\r
149 * Code executed before exiting program
\r
153 PROVIDE(__fini_start = .);
\r
155 /*PROTECTED REGION ID(Protection: iROM .fini.begin) ENABLED START*/
\r
156 /*Protection-Area for your own LDF-Code*/
\r
157 /*PROTECTED REGION END*/
\r
159 KEEP(*(.fini)) /*Code executed before exiting program*/
\r
162 /*PROTECTED REGION ID(Protection: iROM .fini) ENABLED START*/
\r
163 /*Protection-Area for your own LDF-Code*/
\r
164 /*PROTECTED REGION END*/
\r
166 PROVIDE(__fini_end = .);
\r
169 } > PMU_PFLASH /* PMU_PFLASH: Program Flash Memory (PFLASH) */
\r
172 * Section for trap table
\r
176 PROVIDE(__traptab_start = .);
\r
178 /*PROTECTED REGION ID(Protection: iROM .traptab.begin) ENABLED START*/
\r
179 /*Protection-Area for your own LDF-Code*/
\r
180 /*PROTECTED REGION END*/
\r
182 *(.traptab) /*Section for trap table*/
\r
185 /*PROTECTED REGION ID(Protection: iROM .traptab) ENABLED START*/
\r
186 /*Protection-Area for your own LDF-Code*/
\r
187 /*PROTECTED REGION END*/
\r
189 PROVIDE(__traptab_end = .);
\r
192 } > PMU_PFLASH /* PMU_PFLASH: Program Flash Memory (PFLASH) */
\r
195 * Section for interrupt table
\r
199 PROVIDE(__inttab_start = .);
\r
201 /*PROTECTED REGION ID(Protection: iROM .inttab.begin) ENABLED START*/
\r
202 /*Protection-Area for your own LDF-Code*/
\r
203 /*PROTECTED REGION END*/
\r
205 *(.inttab) /*Section for interrupt table*/
\r
208 /*PROTECTED REGION ID(Protection: iROM .inttab) ENABLED START*/
\r
209 /*Protection-Area for your own LDF-Code*/
\r
210 /*PROTECTED REGION END*/
\r
212 PROVIDE(__inttab_end = .);
\r
215 } > PMU_PFLASH /* PMU_PFLASH: Program Flash Memory (PFLASH) */
\r
218 * Exception handling frame for C++ exceptions
\r
222 PROVIDE(__eh_frame_start = .);
\r
224 /*PROTECTED REGION ID(Protection: iROM .eh_frame.begin) ENABLED START*/
\r
225 /*Protection-Area for your own LDF-Code*/
\r
226 /*PROTECTED REGION END*/
\r
228 *(.eh_frame) /*Exception handling frame for C++ exceptions*/
\r
231 /*PROTECTED REGION ID(Protection: iROM .eh_frame) ENABLED START*/
\r
232 /*Protection-Area for your own LDF-Code*/
\r
233 /*PROTECTED REGION END*/
\r
235 PROVIDE(__eh_frame_end = .);
\r
238 } > PMU_PFLASH /* PMU_PFLASH: Program Flash Memory (PFLASH) */
\r
241 * Section for constructors
\r
245 PROVIDE(__ctors_start = .);
\r
247 /*PROTECTED REGION ID(Protection: iROM .ctors.begin) ENABLED START*/
\r
248 /*Protection-Area for your own LDF-Code*/
\r
249 /*PROTECTED REGION END*/
\r
251 KEEP(*(.ctors)) /*Section for constructors*/
\r
254 /*PROTECTED REGION ID(Protection: iROM .ctors) ENABLED START*/
\r
255 /*Protection-Area for your own LDF-Code*/
\r
256 /*PROTECTED REGION END*/
\r
258 PROVIDE(__ctors_end = .);
\r
261 } > PMU_PFLASH /* PMU_PFLASH: Program Flash Memory (PFLASH) */
\r
264 * Section for destructors
\r
268 PROVIDE(__dtors_start = .);
\r
270 /*PROTECTED REGION ID(Protection: iROM .dtors.begin) ENABLED START*/
\r
271 /*Protection-Area for your own LDF-Code*/
\r
272 /*PROTECTED REGION END*/
\r
274 KEEP(*(.dtors)) /*Section for destructors*/
\r
277 /*PROTECTED REGION ID(Protection: iROM .dtors) ENABLED START*/
\r
278 /*Protection-Area for your own LDF-Code*/
\r
279 /*PROTECTED REGION END*/
\r
281 PROVIDE(__dtors_end = .);
\r
284 } > PMU_PFLASH /* PMU_PFLASH: Program Flash Memory (PFLASH) */
\r
287 /*Absolute Data-Sections*/
\r
290 * Initialised data addressed as absolute
\r
294 PROVIDE(__zdata_start = .);
\r
296 /*PROTECTED REGION ID(Protection: iROM .zdata.begin) ENABLED START*/
\r
297 /*Protection-Area for your own LDF-Code*/
\r
298 /*PROTECTED REGION END*/
\r
300 *(.zdata) /*Initialised data addressed as absolute*/
\r
302 *(.gnu.linkonce.z.*)
\r
303 *(.gnu.linkonce.zr.*)
\r
305 /*PROTECTED REGION ID(Protection: iROM .zdata) ENABLED START*/
\r
306 /*Protection-Area for your own LDF-Code*/
\r
307 /*PROTECTED REGION END*/
\r
309 PROVIDE(__zdata_end = .);
\r
312 } > DMI_LDRAM AT > PMU_PFLASH /* DMI_LDRAM: Local Data RAM (LDRAM) */ /* PMU_PFLASH: Program Flash Memory (PFLASH) */
\r
315 * Not initialised data addressed as absolute
\r
319 PROVIDE(__zbss_start = .);
\r
321 /*PROTECTED REGION ID(Protection: iROM .zbss.begin) ENABLED START*/
\r
322 /*Protection-Area for your own LDF-Code*/
\r
323 /*PROTECTED REGION END*/
\r
325 *(.zbss) /*Not Initialised data addressed as absolute*/
\r
327 *(.gnu.linkonce.zb.*)
\r
329 /*PROTECTED REGION ID(Protection: iROM .zbss) ENABLED START*/
\r
330 /*Protection-Area for your own LDF-Code*/
\r
331 /*PROTECTED REGION END*/
\r
333 PROVIDE(__zbss_end = .);
\r
336 } > DMI_LDRAM /* DMI_LDRAM: Local Data RAM (LDRAM) */
\r
339 * Not initialised bit data
\r
343 PROVIDE(__bbss_start = .);
\r
345 /*PROTECTED REGION ID(Protection: iROM .bbss.begin) ENABLED START*/
\r
346 /*Protection-Area for your own LDF-Code*/
\r
347 /*PROTECTED REGION END*/
\r
349 *(.bbss) /*Not initialised bit data*/
\r
352 /*PROTECTED REGION ID(Protection: iROM .bbss) ENABLED START*/
\r
353 /*Protection-Area for your own LDF-Code*/
\r
354 /*PROTECTED REGION END*/
\r
356 PROVIDE(__bbss_end = .);
\r
359 } > DMI_LDRAM /* DMI_LDRAM: Local Data RAM (LDRAM) */
\r
366 PROVIDE(__bdata_start = .);
\r
368 /*PROTECTED REGION ID(Protection: iROM .bdata.begin) ENABLED START*/
\r
369 /*Protection-Area for your own LDF-Code*/
\r
370 /*PROTECTED REGION END*/
\r
372 *(.bdata) /*Bit variables*/
\r
375 /*PROTECTED REGION ID(Protection: iROM .bdata) ENABLED START*/
\r
376 /*Protection-Area for your own LDF-Code*/
\r
377 /*PROTECTED REGION END*/
\r
379 PROVIDE(__bdata_end = .);
\r
382 } > DMI_LDRAM /* DMI_LDRAM: Local Data RAM (LDRAM) */
\r
385 /*Small Data-Sections*/
\r
388 * Storage of write-protected data addressed as small
\r
392 PROVIDE(__sdata2_start = .);
\r
394 /*PROTECTED REGION ID(Protection: iROM .sdata2.begin) ENABLED START*/
\r
395 /*Protection-Area for your own LDF-Code*/
\r
396 /*PROTECTED REGION END*/
\r
398 *(.sdata.rodata) /*Storage of write-protected data addressed as small*/
\r
400 *(.gnu.linkonce.sr.*)
\r
402 /*PROTECTED REGION ID(Protection: iROM .sdata2) ENABLED START*/
\r
403 /*Protection-Area for your own LDF-Code*/
\r
404 /*PROTECTED REGION END*/
\r
406 PROVIDE(__sdata2_end = .);
\r
409 } > PMU_PFLASH /* PMU_PFLASH: Program Flash Memory (PFLASH) */
\r
412 * Section stores initialised data which is addressable by small data area pointer (%a0)
\r
416 PROVIDE(__sdata_start = .);
\r
418 /*PROTECTED REGION ID(Protection: iROM .sdata.begin) ENABLED START*/
\r
419 /*Protection-Area for your own LDF-Code*/
\r
420 /*PROTECTED REGION END*/
\r
422 *(.sdata) /*Section stores initialised data which is addressable by small data area pointer (%a0)*/
\r
424 *(.gnu.linkonce.s.*)
\r
426 /*PROTECTED REGION ID(Protection: iROM .sdata) ENABLED START*/
\r
427 /*Protection-Area for your own LDF-Code*/
\r
428 /*PROTECTED REGION END*/
\r
430 PROVIDE(__sdata_end = .);
\r
433 } > DMI_LDRAM AT > PMU_PFLASH /* DMI_LDRAM: Local Data RAM (LDRAM) */ /* PMU_PFLASH: Program Flash Memory (PFLASH) */
\r
436 * Not initialised data in section ’.sbss’, addressable by small data area pointer (%a0)
\r
440 PROVIDE(__sbss_start = .);
\r
442 /*PROTECTED REGION ID(Protection: iROM .sbss.begin) ENABLED START*/
\r
443 /*Protection-Area for your own LDF-Code*/
\r
444 /*PROTECTED REGION END*/
\r
446 *(.sbss) /*Not initialised data in section ’.sbss’, addressable by small data area pointer (%a0)*/
\r
448 *(.gnu.linkonce.sb.*)
\r
450 /*PROTECTED REGION ID(Protection: iROM .sbss) ENABLED START*/
\r
451 /*Protection-Area for your own LDF-Code*/
\r
452 /*PROTECTED REGION END*/
\r
454 PROVIDE(__sbss_end = .);
\r
457 } > DMI_LDRAM /* DMI_LDRAM: Local Data RAM (LDRAM) */
\r
460 /*Normal Data-Sections*/
\r
463 * Storage of write-protected data
\r
467 PROVIDE(__rodata_start = .);
\r
469 /*PROTECTED REGION ID(Protection: iROM .rodata.begin) ENABLED START*/
\r
470 /*Protection-Area for your own LDF-Code*/
\r
471 /*PROTECTED REGION END*/
\r
473 *(.rodata) /*Storage of write-protected data*/
\r
475 *(.gnu.linkonce.r.*)
\r
478 /*PROTECTED REGION ID(Protection: iROM .rodata) ENABLED START*/
\r
479 /*Protection-Area for your own LDF-Code*/
\r
480 /*PROTECTED REGION END*/
\r
482 PROVIDE(__rodata_end = .);
\r
485 } > PMU_PFLASH /* PMU_PFLASH: Program Flash Memory (PFLASH) */
\r
492 PROVIDE(__data_start = .);
\r
494 /*PROTECTED REGION ID(Protection: iROM .data.begin) ENABLED START*/
\r
495 /*Protection-Area for your own LDF-Code*/
\r
496 /*PROTECTED REGION END*/
\r
498 *(.data) /*Initialised data*/
\r
500 *(.gnu.linkonce.d.*)
\r
502 /*PROTECTED REGION ID(Protection: iROM .data) ENABLED START*/
\r
503 /*Protection-Area for your own LDF-Code*/
\r
504 /*PROTECTED REGION END*/
\r
506 PROVIDE(__data_end = .);
\r
509 } > DMI_LDRAM AT > PMU_PFLASH /* DMI_LDRAM: Local Data RAM (LDRAM) */ /* PMU_PFLASH: Program Flash Memory (PFLASH) */
\r
512 * Not Initialised data
\r
516 PROVIDE(__bss_start = .);
\r
518 /*PROTECTED REGION ID(Protection: iROM .bss.begin) ENABLED START*/
\r
519 /*Protection-Area for your own LDF-Code*/
\r
520 /*PROTECTED REGION END*/
\r
522 *(.bss) /*Not Initialised data*/
\r
524 *(.gnu.linkonce.b.*)
\r
526 /*PROTECTED REGION ID(Protection: iROM .bss) ENABLED START*/
\r
527 /*Protection-Area for your own LDF-Code*/
\r
528 /*PROTECTED REGION END*/
\r
530 PROVIDE(__bss_end = .);
\r
533 } > DMI_LDRAM /* DMI_LDRAM: Local Data RAM (LDRAM) */
\r
544 PROVIDE(__pcptext_start = .);
\r
546 /*PROTECTED REGION ID(Protection: iROM .pcptext.begin) ENABLED START*/
\r
547 /*Protection-Area for your own LDF-Code*/
\r
548 /*PROTECTED REGION END*/
\r
550 KEEP(*(.pcptext)) /*PCP Code Section*/
\r
553 /*PROTECTED REGION ID(Protection: iROM .pcptext) ENABLED START*/
\r
554 /*Protection-Area for your own LDF-Code*/
\r
555 /*PROTECTED REGION END*/
\r
557 PROVIDE(__pcptext_end = .);
\r
560 } > PCP_CMEM AT > PMU_PFLASH /* PCP_CMEM: PCP Code Memory (CMEM) */ /* PMU_PFLASH: Program Flash Memory (PFLASH) */
\r
567 PROVIDE(__pcpdata_start = .);
\r
569 /*PROTECTED REGION ID(Protection: iROM .pcpdata.begin) ENABLED START*/
\r
570 /*Protection-Area for your own LDF-Code*/
\r
571 /*PROTECTED REGION END*/
\r
573 KEEP(*(.pcpdata)) /*PCP Data Section*/
\r
576 /*PROTECTED REGION ID(Protection: iROM .pcpdata) ENABLED START*/
\r
577 /*Protection-Area for your own LDF-Code*/
\r
578 /*PROTECTED REGION END*/
\r
580 PROVIDE(__pcpdata_end = .);
\r
583 } > PCP_PRAM AT > PMU_PFLASH /* PCP_PRAM: PCP Data Memory (PRAM) */ /* PMU_PFLASH: Program Flash Memory (PFLASH) */
\r
591 PROVIDE(__clear_table = .) ;
\r
593 LONG(0 + ADDR(.bss)); LONG(SIZEOF(.bss));
\r
594 LONG(0 + ADDR(.sbss)); LONG(SIZEOF(.sbss));
\r
595 LONG(0 + ADDR(.zbss)); LONG(SIZEOF(.zbss));
\r
596 LONG(0 + ADDR(.bbss)); LONG(SIZEOF(.bbss));
\r
597 /*PROTECTED REGION ID(Protection: iROM clear section) ENABLED START*/
\r
598 /*Protection-Area for your own LDF-Code*/
\r
599 /*PROTECTED REGION END*/
\r
600 LONG(-1); LONG(-1);
\r
608 PROVIDE(__copy_table = .) ;
\r
610 LONG(LOADADDR(.data)); LONG(0 + ADDR(.data)); LONG(SIZEOF(.data));
\r
611 LONG(LOADADDR(.sdata)); LONG(0 + ADDR(.sdata)); LONG(SIZEOF(.sdata));
\r
612 LONG(LOADADDR(.zdata)); LONG(0 + ADDR(.zdata)); LONG(SIZEOF(.zdata));
\r
613 LONG(LOADADDR(.pcptext)); LONG(0 + ADDR(.pcptext)); LONG(SIZEOF(.pcptext));
\r
614 LONG(LOADADDR(.pcpdata)); LONG(0 + ADDR(.pcpdata)); LONG(SIZEOF(.pcpdata));
\r
616 /*PROTECTED REGION ID(Protection: iROM copy section) ENABLED START*/
\r
617 /*Protection-Area for your own LDF-Code*/
\r
618 /*PROTECTED REGION END*/
\r
619 LONG(-1); LONG(-1); LONG(-1);
\r
642 . += __ISTACK_SIZE;
\r
649 . += __USTACK_SIZE;
\r
653 /*PROTECTED REGION ID(Protection:iROM-User-Sections) ENABLED START*/
\r
654 /*Protection-Area for your own LDF-Code*/
\r
655 /*PROTECTED REGION END*/
\r