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