FreeCalypso > hg > fc-magnetite
annotate src/cs/system/template/gsm_ds_motc139.template @ 605:07d0dc4431f4
bootloader.s: same MEMIF fix as in int.s plus DPLL BYPASS fix
Both MEMIF and DPLL settings are now the same between int.s and bootloader.s
assembly code paths. Previously bootloader.s was setting DPLL BYPASS /2 mode,
which persisted until _INT_Initialize code with the bootloader body omitted,
or was changed to /1 in the hardware init function in the
bootloader.lib:start.obj module.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 17 Jun 2019 18:40:32 +0000 |
parents | b54879bebfd3 |
children |
rev | line source |
---|---|
86
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * Integrated Protocol Stack Linker command file (all components) |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 * Target : ARM |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 * |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 * Copyright (c) Texas Instruments 2002, Condat 2002 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 * |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 * This version of the linker script template has been concocted |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 * by Spacefalcon the Outlaw, based on gsm_ds_amd8_lj3.template, |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 * in order to build the GSM firmware for the memory configuration |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 * found in the Motorola C139. |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 -c /* Autoinitialize variables at runtime */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 /*********************************/ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 /* SPECIFY THE SYSTEM MEMORY MAP */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 /*********************************/ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 MEMORY |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 { |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 /* CS0: Flash 4 Mbytes ****************************************************/ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 /* Interrupt Vectors Table */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 I_MEM (RXI) : org = 0x00000000 len = 0x00000100 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 /* Boot Sector */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 B_MEM (RXI) : org = 0x00000100 len = 0x00001f00 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 /* Magic Word for Calypso Boot ROM */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 MWC_MEM (RXI) : org = 0x00002000 len = 0x00000004 fill = 0x0000001 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 /* Program Memory */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 P_MEM1 (RXI) : org = 0x00010000 len = 0x00000700 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 P_MEM2 (RXI) : org = 0x00010700 len = 0x00000004 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 P_MEM3 (RXI) : org = 0x00010704 len = 0x003af8fc |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 /* FFS Area */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 FFS_MEM (RX) : org = 0x003C0000 len = 0x00030000 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 /**************************************************************************/ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 /* CS1: External SRAM 1 Mbytes ********************************************/ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 /* Data Memory */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 /* |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 *** HACK by Spacefalcon the Outlaw *** |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 * |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 * The starting Leonardo version (gsm_ds_amd8_lj3.template) had two |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 * external SRAM regions: D_MEM1 and D_MEM2. When I tried removing |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 * D_MEM2 and keeping only D_MEM1, the linker started behaving oddly |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 * in that the sections were emitted in the wrong order, and the |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 * addresses printed in the map file were bogus. The resulting m0 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 * images seemed to still work correctly, but I feel that having the |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 * linker act "correctly" is better. |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 * |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 * My current hack-solution is to split the 1 MiB physical XRAM |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 * into D_MEM1 and D_MEM2 of 512 KiB each. As it happens, the total |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 * XRAM usage of the current firmware is a little below 512 KiB anyway. |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 * |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 * Update for C139: we only have 512 KiB in total now, but we can still |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 * split the last 4 KiB off into D_MEM2. |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 D_MEM1 (RW) : org = 0x01000000 len = 0x0007F000 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 D_MEM2 (RW) : org = 0x0107F000 len = 0x00001000 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 /**************************************************************************/ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 /* CS6: Calypso Internal SRAM 256 kbytes **********************************/ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 /* Code & Variables Memory */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 S_MEM (RXW) : org = 0x00800000 len = 0x00040000 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 /**************************************************************************/ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 } |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 /***********************************************/ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 /* SPECIFY THE SECTIONS ALLOCATION INTO MEMORY */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 /***********************************************/ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 /* |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 * Since the bootloader directly calls the INT_Initialize() routine located |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 * in int.s, this int.s code must always be mapped at the same address |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 * (usually in the second flash sector). Its length is about 0x500 bytes. |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 * Then comes the code that need to be loaded into the internal RAM. |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 SECTIONS |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 { |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 .intvecs : {} > I_MEM /* Interrupt Vectors Table */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 .monitor : > B_MEM /* Monitor Constants & Code */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 { |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 $(CONST_BOOT_LIB) |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 } |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 .inttext : {} > P_MEM1 /* int.s Code */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 .bss_dar : > D_MEM1 /* DAR SWE Variables */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 { |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 $(BSS_DAR_LIB) |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 } |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 /* |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 * The .bss section should not be split to ensure it is initialized to 0 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 * each time the SW is reset. So the whole .bss is mapped either in D_MEM1 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 * or in D_MEM2. |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 * |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 * Falcon's note for K5A3281: see the comments above where the memory |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 * regions are defined. |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 .bss : > D_MEM1 | D_MEM2 /* Global & Static Variables */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 { |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 $(BSS_BOOT_LIB) |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 } |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 /* |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 * All .bss sections, which must be mapped in internal RAM must be |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 * grouped in order to initialized the corresponding memory to 0. |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 * This initialization is done in int.s file before calling the Nucleus |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 * routine. |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 GROUP |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 { |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 S_D_Mem /* Label of start address of .bss section in Int. RAM */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 .DintMem |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 { |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 /* |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 * .bss sections of the application |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 $(BSS_LIBS) |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 } |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 API_HISR_stack : {} |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 E_D_Mem /* Label of end address of .bss section in Int. RAM */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 } > S_MEM |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 /* |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 * .text and .const sections which must be mapped in internal RAM. |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 .ldfl : {} > P_MEM2 /* Used to know the start load address */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 GROUP load = P_MEM3, run = S_MEM |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 { |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 S_P_Mem /* Label of start address of .text & .const sections in Int. RAM */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 .PIntMem |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 { |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 /* |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 * .text and .const sections of the application. |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 * |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 * The .veneer sections correspond exactly to .text:v&n sections |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153 * implementing the veneer functions. The .text:v$n -> .veneer |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 * translation is performed by PTOOL software when PTOOL_OPTIONS |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 * environement variable is set to veneer_section. |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 $(CONST_LIBS) |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 } |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 E_P_Mem /* Label of end address of .text and .const sections in Int. RAM */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 } |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164 /* |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 * The rest of the code is mapped in flash, however the trampolines |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 * load address should be consistent with .text. |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 COMMENT2START |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 `trampolines load = P_MEM3, run = S_MEM |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170 COMMENT2END |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 .text : {} > P_MEM3 /* Code */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 /* |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175 * The rest of the constants is mapped in flash. |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 * The .cinit section should not be split. |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177 */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179 .cinit : {} > P_MEM3 /* Initialization Tables */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 .const : {} > P_MEM3 /* Constant Data */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181 KadaAPI : {} > P_MEM3 /* ROMized CLDC */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
182 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
183 .javastack: {} >> D_MEM1 | D_MEM2 /* Java stack */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
184 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
185 .stackandheap : > D_MEM1 /* System Stacks, etc... */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
186 { |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
187 /* Leave 20 32bit words for register pushes. */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
188 . = align(8); |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
189 . += 20 * 4; |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
190 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191 /* Stack for abort and/or undefined modes. */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192 exception_stack = .; |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
193 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
194 /* Leave 38 32bit words for state saving on exceptions. */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
195 _xdump_buffer = .; |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
196 . += 38 * 4; |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
197 . = align(8); |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
198 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
199 /* Beginning of stacks and heap area - 2.75 kbytes (int.s) */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200 stack_segment = .; |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201 . += 0xB00; |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202 } |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
204 .data : {} > D_MEM1 /* Initialized Data */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
205 .sysmem : {} > D_MEM1 /* Dynamic Memory Allocation Area */ |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206 |
b54879bebfd3
src/cs/system/template: C139 and Pirelli versions added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207 } |