3
3
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
4
4
/*-Specials-*/
5
5
6
+
7
+
8
+
6
9
/*-Memory Regions-*/
7
10
define symbol __ICFEDIT_region_ROM_start__ = 0x00000000;
8
11
define symbol __ICFEDIT_region_ROM_end__ = 0x000FFFFF;
9
12
define symbol __ICFEDIT_region_TCM_start__ = 0x1FFF0000;
10
13
define symbol __ICFEDIT_region_TCM_end__ = 0x1FFFFFFF;
11
14
define symbol __ICFEDIT_region_ROM_USED_RAM_start__ = 0x10000000;
12
15
define symbol __ICFEDIT_region_ROM_USED_RAM_end__ = 0x10005FFF;
16
+
17
+
18
+
13
19
define symbol __ICFEDIT_region_BD_RAM_start__ = 0x10006000;
20
+
21
+
14
22
define symbol __ICFEDIT_region_BD_RAM_end__ = 0x1006FFFF;
23
+
15
24
define symbol __ICFEDIT_region_SDRAM_RAM_start__ = 0x30000000;
16
25
define symbol __ICFEDIT_region_SDRAM_RAM_end__ = 0x301FFFFF;
17
26
18
27
/*-Sizes-*/
19
28
define symbol __ICFEDIT_size_cstack__ = 0x2000; // 8K
20
- define symbol __ICFEDIT_size_heap__ = 0xF000 ; // 60K
29
+ define symbol __ICFEDIT_size_heap__ = 0x8000 ; // 60K
21
30
/**** End of ICF editor section. ###ICF###*/
22
31
32
+
23
33
define memory mem with size = 4G;
24
34
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
25
35
define region TCM_region = mem:[from __ICFEDIT_region_TCM_start__ to __ICFEDIT_region_TCM_end__];
26
36
define region ROM_USED_RAM_region = mem:[from __ICFEDIT_region_ROM_USED_RAM_start__ to __ICFEDIT_region_ROM_USED_RAM_end__];
37
+
27
38
define region BD_RAM_region = mem:[from __ICFEDIT_region_BD_RAM_start__ to __ICFEDIT_region_BD_RAM_end__];
28
39
40
+
29
41
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
30
42
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
31
43
32
44
//initialize by copy { readwrite };
45
+
46
+
33
47
do not initialize { section .noinit };
34
48
35
49
50
+
51
+
52
+
53
+
54
+
36
55
/****************************************
37
56
* ROM Section config *
38
57
****************************************/
@@ -57,14 +76,20 @@ define block .rom.bss with fixed order{ section .hal.ram.bss* object hal_misc.o,
57
76
section .hal.ram.bss* object diag.o,
58
77
section .hal.ram.bss* object rtl8195a_ssi_rom.o,
59
78
section .hal.ram.bss* object rtl8195a_gpio.o,
79
+
60
80
section .hal.ram.bss*,
61
81
section .timer2_7_vector_table.data*,
82
+
83
+
62
84
section .infra.ram.bss*,
63
85
section .mon.ram.bss*,
64
86
section .wlan_ram_map* object rom_wlan_ram_map.o,
87
+
88
+
65
89
section .wlan_ram_map*,
66
90
section .libc.ram.bss*,
67
91
};
92
+
68
93
keep { section .start.ram.data* };
69
94
define block .ram.start.table with fixed order{ section .start.ram.data* };
70
95
@@ -74,17 +99,21 @@ keep { section .image1.validate.rodata* };
74
99
keep { section .hal.ram.data* };
75
100
define block .ram_image1.data with fixed order{ section .image1.validate.rodata*,
76
101
section .infra.ram.data*,
102
+
77
103
//section .timer.ram.data*,
78
104
section .cutb.ram.data*,
79
105
section .hal.ram.data* object rom.o, // for standard libaray __impure_data_ptr
80
106
section .cutc.ram.data*,
81
107
section .hal.ram.data*
82
108
};
83
109
//define block .ram_image1.bss with fixed order{ //section .hal.flash.data*,
110
+
111
+
84
112
// section .hal.sdrc.data*
85
113
// };
86
114
87
115
define block .ram_image1.text with fixed order{ section .hal.ram.text*,
116
+
88
117
// //section .hal.sdrc.text*,
89
118
// //section .text* object startup.o,
90
119
section .infra.ram.text*,
@@ -103,6 +132,7 @@ place at start of ROM_USED_RAM_region { //readwrite,
103
132
block .rom.bss,
104
133
block IMAGE1
105
134
};
135
+
106
136
/**
107
137
IMAGE2
108
138
**/
@@ -112,6 +142,7 @@ define block .image2.start.table1 with fixed order{ section .image2.ram.data* };
112
142
keep { section .image2.validate.rodata*, section .custom.validate.rodata* };
113
143
define block .image2.start.table2 with fixed order{ section .image2.validate.rodata*, section .custom.validate.rodata* };
114
144
145
+
115
146
/*
116
147
define block SHT$$PREINIT_ARRAY { preinit_array };
117
148
define block SHT$$INIT_ARRAY { init_array };
@@ -126,9 +157,13 @@ define block .ram_image2.text with fixed order{ section .infra.ram.start*,
126
157
section .hal.gpio.text*,
127
158
section .text* object main.o,
128
159
section .text*,
160
+
129
161
section CODE,
130
162
section .otg.rom.text,
131
163
section Veneer object startup.o,
164
+
165
+
166
+
132
167
section __DLIB_PERTHREAD
133
168
};
134
169
@@ -152,25 +187,71 @@ define block .ram.bss with fixed order{ section .bss*,
152
187
};
153
188
154
189
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+
198
+
155
199
place at start of BD_RAM_region {
156
200
block IMAGE2,
157
- // readwrite,
201
+ readwrite,
158
202
block .ram.bss,
159
203
};
160
204
place at end of BD_RAM_region{
161
205
block HEAP,
162
206
//block CSTACK
163
207
};
164
208
209
+
210
+
211
+
212
+
213
+
214
+
215
+
216
+
217
+
165
218
/****************************************
166
219
* BD RAM Section config *
167
220
****************************************/
168
221
define block .heap with fixed order{ section .heap* };
169
222
define block .stack_dummy with fixed order { section .stack };
223
+
224
+
225
+
226
+
227
+
228
+
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+
237
+
238
+
239
+
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+
248
+
170
249
/*TCM placement */
171
250
define overlay TCM_overlay { //section .tcm.heap,
172
251
//section .bss object mem.o,
173
252
//section .bss object memp.o,
253
+
254
+
174
255
block .heap,
175
256
block .stack_dummy
176
257
};
@@ -189,3 +270,5 @@ define exported symbol __ram_start_table_start__= 0x10000bc8; // use in rom
189
270
define exported symbol __image1_validate_code__= 0x10000bdc; // needed by ram code
190
271
define exported symbol _rtl_impure_ptr = 0x10001c60; // for standard library
191
272
273
+
274
+
0 commit comments