1 /*###ICF### Section handled by ICF editor, don't touch! ****/
\r
2 /*-Editor annotation file-*/
\r
3 /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\a_v1_0.xml" */
\r
5 define symbol __ICFEDIT_intvec_start__ = 0x00000000;
\r
7 define symbol __ICFEDIT_region_ROM_start__ = 0x40020040;
\r
8 define symbol __ICFEDIT_region_ROM_end__ = 0x4008FFFF;
\r
9 define symbol __ICFEDIT_region_RAM_start__ = 0x00070000;
\r
10 define symbol __ICFEDIT_region_RAM_end__ = 0x0007FFFF;
\r
12 define symbol __ICFEDIT_size_cstack__ = 0x2000;
\r
13 define symbol __ICFEDIT_size_svcstack__ = 0x200;
\r
14 define symbol __ICFEDIT_size_irqstack__ = 0x100;
\r
15 define symbol __ICFEDIT_size_fiqstack__ = 0x100;
\r
16 define symbol __ICFEDIT_size_undstack__ = 0x100;
\r
17 define symbol __ICFEDIT_size_abtstack__ = 0x100;
\r
18 define symbol __ICFEDIT_size_heap__ = 0x1000;
\r
19 /**** End of ICF editor section. ###ICF###*/
\r
22 define memory mem with size = 4G;
\r
23 define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
\r
24 define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
\r
26 define symbol __region_USER_PRG_start__ = 0x00000040;
\r
27 define symbol __region_USER_PRG_end__ = 0x0006FFFF;
\r
29 define symbol __region_D_LDR_DATA_start__ = 0x00800000;
\r
30 define symbol __region_D_LDR_DATA_end__ = 0x00801FFF;
\r
31 define symbol __region_D_LDR_PRG_start__ = 0x00802000;
\r
32 define symbol __region_D_LDR_PRG_end__ = 0x00807FFF;
\r
34 define symbol __region_D_LDR_M3PRG_start__ = 0x04000000;
\r
35 define symbol __region_D_LDR_M3PRG_end__ = 0x0407FFFF;
\r
37 define symbol __region_S_LDR_M3PRG_start__ = 0x00050000;
\r
38 define symbol __region_S_LDR_M3PRG_end__ = 0x0006FFFF;
\r
40 define symbol __region_EXT_RAM1_start__ = 0x22000000;
\r
41 define symbol __region_EXT_RAM1_end__ = 0x2207FFFF;
\r
42 define symbol __region_EXT_RAM2_start__ = 0x24000000;
\r
43 define symbol __region_EXT_RAM2_end__ = 0x2407FFFF;
\r
44 define symbol __region_SPIBSC_start__ = 0x30000000;
\r
45 define symbol __region_SPIBSC_end__ = 0x33FFFFFF;
\r
47 define symbol __region_CS0_start__ = 0x40000000;
\r
48 define symbol __region_CS0_end__ = 0x43FFFFFF;
\r
49 define symbol __region_CS1_start__ = 0x44000000;
\r
50 define symbol __region_CS1_end__ = 0x47FFFFFF;
\r
51 define symbol __region_CS2_start__ = 0x48000000;
\r
52 define symbol __region_CS2_end__ = 0x4BFFFFFF;
\r
53 define symbol __region_CS3_start__ = 0x4C000000;
\r
54 define symbol __region_CS3_end__ = 0x4FFFFFFF;
\r
55 define symbol __region_CS4_start__ = 0x50000000;
\r
56 define symbol __region_CS4_end__ = 0x53FFFFFF;
\r
57 define symbol __region_CS5_start__ = 0x54000000;
\r
58 define symbol __region_CS5_end__ = 0x57FFFFFF;
\r
60 define region USER_PRG_region = mem:[from __region_USER_PRG_start__ to __region_USER_PRG_end__];
\r
61 define region D_LDR_DATA_region = mem:[from __region_D_LDR_DATA_start__ to __region_D_LDR_DATA_end__];
\r
62 define region D_LDR_PRG_region = mem:[from __region_D_LDR_PRG_start__ to __region_D_LDR_PRG_end__];
\r
64 define region D_LDR_M3PRG_region = mem:[from __region_D_LDR_M3PRG_start__ to __region_D_LDR_M3PRG_end__];
\r
65 define region S_LDR_M3PRG_region = mem:[from __region_S_LDR_M3PRG_start__ to __region_S_LDR_M3PRG_end__];
\r
67 define region EXT_RAM1_region = mem:[from __region_EXT_RAM1_start__ to __region_EXT_RAM1_end__];
\r
68 define region EXT_RAM2_region = mem:[from __region_EXT_RAM2_start__ to __region_EXT_RAM2_end__];
\r
69 define region SPIBSC_region = mem:[from __region_SPIBSC_start__ to __region_SPIBSC_end__];
\r
70 define region CS0_region = mem:[from __region_CS0_start__ to __region_CS0_end__];
\r
71 define region CS1_region = mem:[from __region_CS1_start__ to __region_CS1_end__];
\r
72 define region CS2_region = mem:[from __region_CS2_start__ to __region_CS2_end__];
\r
73 define region CS3_region = mem:[from __region_CS3_start__ to __region_CS3_end__];
\r
74 define region CS4_region = mem:[from __region_CS4_start__ to __region_CS4_end__];
\r
75 define region CS5_region = mem:[from __region_CS5_start__ to __region_CS5_end__];
\r
77 define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
\r
78 define block SVC_STACK with alignment = 8, size = __ICFEDIT_size_svcstack__ { };
\r
79 define block IRQ_STACK with alignment = 8, size = __ICFEDIT_size_irqstack__ { };
\r
80 define block FIQ_STACK with alignment = 8, size = __ICFEDIT_size_fiqstack__ { };
\r
81 define block UND_STACK with alignment = 8, size = __ICFEDIT_size_undstack__ { };
\r
82 define block ABT_STACK with alignment = 8, size = __ICFEDIT_size_abtstack__ { };
\r
83 define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
\r
86 define block LDR_PRG_RBLOCK with fixed order
\r
87 { ro code object loader_init.o,
\r
88 ro code object loader_init2.o,
\r
89 ro code object r_atcm_init.o,
\r
90 ro code object r_cpg.o,
\r
91 ro code object r_ram_init.o,
\r
92 ro code object r_mpc.o,
\r
93 ro code object r_reset.o,
\r
94 ro code object data_init.o,
\r
95 ro code object copy_init3.o };
\r
96 define block LDR_DATA_ZBLOCK { section .bss object loader_init.o,
\r
97 section .bss object loader_init2.o,
\r
98 section .bss object r_atcm_init.o,
\r
99 section .bss object r_cpg.o,
\r
100 section .bss object r_ram_init.o,
\r
101 section .bss object r_mpc.o,
\r
102 section .bss object r_reset.o,
\r
103 section .bss object data_init.o,
\r
104 section .bss object copy_init3.o };
\r
105 define block LDR_DATA_RBLOCK { section .data_init object loader_init.o,
\r
106 section .data_init object loader_init2.o,
\r
107 section .data_init object r_atcm_init.o,
\r
108 section .data_init object r_cpg.o,
\r
109 section .data_init object r_ram_init.o,
\r
110 section .data_init object r_mpc.o,
\r
111 section .data_init object r_reset.o,
\r
112 section .data_init object data_init.o,
\r
113 section .data_init object copy_init3.o };
\r
114 define block LDR_DATA_WBLOCK { section .data object loader_init.o,
\r
115 section .data object loader_init2.o,
\r
116 section .data object r_atcm_init.o,
\r
117 section .data object r_cpg.o,
\r
118 section .data object r_ram_init.o,
\r
119 section .data object r_mpc.o,
\r
120 section .data object r_reset.o,
\r
121 section .data object data_init.o,
\r
122 section .data object copy_init3.o };
\r
123 define block VECTOR_RBLOCK { ro code object vector.o };
\r
124 define block USER_PRG_RBLOCK { ro code };
\r
125 define block USER_DATA_ZBLOCK { section .bss };
\r
126 define block USER_DATA_RBLOCK { section .data_init };
\r
127 define block USER_DATA_WBLOCK { section .data };
\r
129 define block M3_PRG_RBLOCK { section __M3prg_init };
\r
130 define block M3_PRG_WBLOCK { section __M3prg };
\r
132 initialize by copy { readwrite };
\r
134 do not initialize { section .noinit, section .bss };
\r
136 initialize manually { section __M3prg };
\r
138 place at address mem:__ICFEDIT_intvec_start__ { block VECTOR_RBLOCK };
\r
140 place in USER_PRG_region { block USER_PRG_RBLOCK,
\r
141 block USER_DATA_RBLOCK,
\r
143 place in RAM_region { readwrite };
\r
144 place in RAM_region { block USER_DATA_WBLOCK,
\r
145 block USER_DATA_ZBLOCK,
\r
146 block CSTACK, block SVC_STACK, block IRQ_STACK, block FIQ_STACK,
\r
147 block UND_STACK, block ABT_STACK, block HEAP };
\r
148 place in D_LDR_DATA_region { block LDR_DATA_WBLOCK, block LDR_DATA_ZBLOCK };
\r
149 place in D_LDR_PRG_region { block LDR_PRG_RBLOCK,
\r
150 block LDR_DATA_RBLOCK };
\r
152 place in S_LDR_M3PRG_region { block M3_PRG_RBLOCK };
\r
153 place in D_LDR_M3PRG_region { block M3_PRG_WBLOCK };
\r
155 place in EXT_RAM1_region {};
\r
156 place in EXT_RAM2_region {};
\r
157 place in SPIBSC_region {};
\r
158 place in CS0_region {};
\r
159 place in CS1_region {};
\r
160 place in CS2_region {};
\r
161 place in CS3_region {};
\r
162 place in CS4_region {};
\r
163 place in CS5_region {};
\r