annotate src/cs/system/template/gsm_ds_amd8_tango.template @ 686:59f07d67eb45

luna target split into luna1 and luna2 luna1 is FC Luna based on iWOW DSK v4.0 or v5.0 motherboard luna2 is FC Luna based on FC Caramel2 MB
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 12 Oct 2020 18:51:24 +0000
parents 0ccda9c065bc
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
674
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * Integrated Protocol Stack Linker command file (all components)
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 *
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 * Target : ARM
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 *
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 * Copyright (c) Texas Instruments 2002, Condat 2002
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 *
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 -c /* Autoinitialize variables at runtime */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 /*********************************/
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 /* SPECIFY THE SYSTEM MEMORY MAP */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 /*********************************/
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 MEMORY
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 {
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 /* CS0: Flash 8 Mbytes ****************************************************/
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 /* Interrupt Vectors Table */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 I_MEM (RXI) : org = 0x00000000 len = 0x00000100
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 /* Boot Sector */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 B_MEM (RXI) : org = 0x00000100 len = 0x00001f00
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 /* Magic Word for Calypso Boot ROM */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 MWC_MEM (RXI) : org = 0x00002000 len = 0x00000004 fill = 0x0000001
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 /* Program Memory */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 P_MEM1 (RXI) : org = 0x00004000 len = 0x00000700
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 P_MEM2 (RXI) : org = 0x00004700 len = 0x00000004
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 P_MEM3 (RXI) : org = 0x00004704 len = 0x00400000
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 /* FFS Area */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 FFS_MEM (RX) : org = 0x00700000 len = 0x00100000
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 /**************************************************************************/
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 /* CS1: External SRAM 2 Mbytes ********************************************/
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 /* Data Memory */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 D_MEM1 (RW) : org = 0x01000000 len = 0x00100000
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 D_MEM2 (RW) : org = 0x01100000 len = 0x00100000
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 /**************************************************************************/
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 /* CS6: Calypso Internal SRAM 256 kbytes **********************************/
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 /* Code & Variables Memory */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 S_MEM (RXW) : org = 0x00800000 len = 0x00040000
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 /**************************************************************************/
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 }
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 /***********************************************/
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 /* SPECIFY THE SECTIONS ALLOCATION INTO MEMORY */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 /***********************************************/
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 /*
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 * Since the bootloader directly calls the INT_Initialize() routine located
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 * in int.s, this int.s code must always be mapped at the same address
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 * (usually in the second flash sector). Its length is about 0x500 bytes.
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 * Then comes the code that need to be loaded into the internal RAM.
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 SECTIONS
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 {
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 .intvecs : {} > I_MEM /* Interrupt Vectors Table */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 .monitor : > B_MEM /* Monitor Constants & Code */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 {
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 $(CONST_BOOT_LIB)
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 }
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 .inttext : {} > P_MEM1 /* int.s Code */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70 .bss_dar : > D_MEM1 /* DAR SWE Variables */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71 {
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 $(BSS_DAR_LIB)
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73 }
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75 /*
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76 * The .bss section should not be split to ensure it is initialized to 0
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77 * each time the SW is reset. So the whole .bss is mapped either in D_MEM1
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78 * or in D_MEM2.
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79 */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81 .bss : > D_MEM1 | D_MEM2 /* Global & Static Variables */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82 {
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83 $(BSS_BOOT_LIB)
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84 }
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
86 /*
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
87 * All .bss sections, which must be mapped in internal RAM must be
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
88 * grouped in order to initialized the corresponding memory to 0.
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
89 * This initialization is done in int.s file before calling the Nucleus
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
90 * routine.
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91 */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
92
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
93 GROUP
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
94 {
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
95 S_D_Mem /* Label of start address of .bss section in Int. RAM */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
96 .DintMem
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
97 {
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
98
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
99 /*
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
100 * .bss sections of the application
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101 */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103 $(BSS_LIBS)
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105 }
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
106
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
107 API_HISR_stack : {}
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
108
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
109 E_D_Mem /* Label of end address of .bss section in Int. RAM */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
110 } > S_MEM
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
111
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
112 /*
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
113 * .text and .const sections which must be mapped in internal RAM.
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
114 */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
115
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
116 .ldfl : {} > P_MEM2 /* Used to know the start load address */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
117 GROUP load = P_MEM3, run = S_MEM
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
118 {
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
119 S_P_Mem /* Label of start address of .text & .const sections in Int. RAM */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
120 .PIntMem
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
121 {
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
122 /*
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
123 * .text and .const sections of the application.
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
124 *
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
125 * The .veneer sections correspond exactly to .text:v&n sections
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
126 * implementing the veneer functions. The .text:v$n -> .veneer
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
127 * translation is performed by PTOOL software when PTOOL_OPTIONS
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
128 * environement variable is set to veneer_section.
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
129 */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
130
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
131 $(CONST_LIBS)
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
132
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
133 }
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
134 E_P_Mem /* Label of end address of .text and .const sections in Int. RAM */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
135 }
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
136
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
137 /*
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
138 * The rest of the code is mapped in flash, however the trampolines
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
139 * load address should be consistent with .text.
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
140 */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
141 COMMENT2START
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
142 `trampolines load = P_MEM3, run = S_MEM
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
143 COMMENT2END
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
144
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
145 .text : {} > P_MEM3 /* Code */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
146
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
147 /*
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
148 * The rest of the constants is mapped in flash.
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
149 * The .cinit section should not be split.
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
150 */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
151
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
152 .cinit : {} > P_MEM3 /* Initialization Tables */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
153 .const : {} > P_MEM3 /* Constant Data */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
154 KadaAPI : {} > P_MEM3 /* ROMized CLDC */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
155
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
156 .javastack: {} >> D_MEM1 | D_MEM2 /* Java stack */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
157
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
158 .stackandheap : > D_MEM1 /* System Stacks, etc... */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
159 {
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
160 /* Leave 20 32bit words for register pushes. */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
161 . = align(8);
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
162 . += 20 * 4;
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
163
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
164 /* Stack for abort and/or undefined modes. */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
165 exception_stack = .;
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
166
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
167 /* Leave 38 32bit words for state saving on exceptions. */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
168 _xdump_buffer = .;
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
169 . += 38 * 4;
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
170 . = align(8);
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
171
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
172 /* Beginning of stacks and heap area - 2.75 kbytes (int.s) */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
173 stack_segment = .;
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
174 . += 0xB00;
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
175 }
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
176
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
177 .data : {} > D_MEM1 /* Initialized Data */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
178 .sysmem : {} > D_MEM1 /* Dynamic Memory Allocation Area */
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
179
0ccda9c065bc gsm_ds_amd8_tango.template for tangomdm and luna targets
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
180 }