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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 }