Mercurial > public > ostc4
comparison Common/CPU1-F429.ld @ 43:c42c82f73c96
Split memory areas and reverse engineered font library
author | Ideenmodellierer |
---|---|
date | Sun, 29 Jul 2018 18:05:44 +0200 |
parents | 5f11787b4f42 |
children | 06cfc7457c9e |
comparison
equal
deleted
inserted
replaced
42:2d99d9290a22 | 43:c42c82f73c96 |
---|---|
46 | 46 |
47 /****************************************************************************/ | 47 /****************************************************************************/ |
48 /***************************** Memory Definition ****************************/ | 48 /***************************** Memory Definition ****************************/ |
49 MEMORY | 49 MEMORY |
50 { | 50 { |
51 ROM (rx) : ORIGIN = 0x08000000, LENGTH = 0x100000 /* 1024K */ | 51 ROM_BOOT (rx) : ORIGIN = 0x08000000, LENGTH = 0x00040000 /* 256K */ |
52 ROM_MAIN (rx) : ORIGIN = 0x08040000, LENGTH = 0x00090000 /* 576K */ | |
52 UPPER(rx) : ORIGIN = 0x08100000, LENGTH = 0x100000 /* 1024K */ | 53 UPPER(rx) : ORIGIN = 0x08100000, LENGTH = 0x100000 /* 1024K */ |
53 RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 192K | 54 RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 192K |
54 CCRAM (rwx) : ORIGIN = 0x10000000, LENGTH = 64K | 55 CCRAM (rwx) : ORIGIN = 0x10000000, LENGTH = 64K |
55 } | 56 } |
56 | 57 |
58 /* Linker file shall be shared between Bootloader, Font and Firmware projects. Not used memory areas to be cut during bin generation */ | |
59 | |
57 /* Make sure ROM and UPPER are contiguous, and map 2MB */ | 60 /* Make sure ROM and UPPER are contiguous, and map 2MB */ |
58 ASSERT( ORIGIN(UPPER) - ORIGIN(ROM) == LENGTH(ROM), "ROM lower and upper region shall be continuous" ) | 61 /* TODO: At the moment the size of the defined memory will be directly reflected into the file size of resultion bin => Keep small until not used memory may be excluded from build */ |
59 ASSERT( LENGTH(ROM) + LENGTH(UPPER) == 2048K, "ROM lower + upper regions = 2MB" ) | 62 /*ASSERT( ORIGIN(UPPER) - ORIGIN(ROM) == LENGTH(ROM), "ROM lower and upper region shall be continuous" ) |
63 /*ASSERT( LENGTH(ROM) + LENGTH(UPPER) == 2048K, "ROM lower + upper regions = 2MB" ) */ | |
60 | 64 |
61 /* Highest address of the user mode stack */ | 65 /* Highest address of the user mode stack */ |
62 _estack = ORIGIN(RAM) + LENGTH(RAM); | 66 /*_estack = ORIGIN(RAM) + LENGTH(RAM);*/ |
63 | 67 |
64 /* Used by the startup to initialize data */ | |
65 _sidata = LOADADDR(.data); | |
66 | 68 |
67 _Min_Heap_Size = 0; /* no required heap (malloc'ed space) */ | 69 _Min_Heap_Size = 0; /* no required heap (malloc'ed space) */ |
68 _Min_Stack_Size = 0x8000; /* required 32K of stack */ | 70 _Min_Stack_Size = 0x08000; /* required 32K of stack */ |
69 | 71 |
70 /* Linker script to place sections and symbol values. Should be used together | 72 /* Linker script to place sections and symbol values. Should be used together |
71 * with other linker script that defines memory regions FLASH and RAM. | 73 * with other linker script that defines memory regions FLASH and RAM. |
72 * It references following symbols, which must be defined in code: | 74 * It references following symbols, which must be defined in code: |
73 * Reset_Handler : Entry of reset handler | 75 * Reset_Handler : Entry of reset handler |
94 /****************************************************************************/ | 96 /****************************************************************************/ |
95 /*************************** Code and Data Sections *************************/ | 97 /*************************** Code and Data Sections *************************/ |
96 SECTIONS | 98 SECTIONS |
97 { | 99 { |
98 /******************* NVIC reset and interupt vectors **********************/ | 100 /******************* NVIC reset and interupt vectors **********************/ |
99 .isr_vector 0x08000000 : | 101 .isr_vector 0x08040000 : |
100 { | 102 { |
103 . = ALIGN(4); | |
101 KEEP( *(.isr_vector) ) | 104 KEEP( *(.isr_vector) ) |
102 } >ROM | 105 KEEP(*(.init)) |
103 | 106 } >ROM |
104 /************* The program code and other data into ROM memory ************/ | 107 |
105 .text : | 108 |
109 /* PROVIDE( firmware_FirmwareData = . );*/ | |
110 .firmware_FirmwareData 0x08050000 : { | |
111 KEEP( *(.firmware_firmware_data) ) | |
112 } >ROM | |
113 | |
114 .text 0x08054000 : | |
106 { | 115 { |
107 . = ALIGN(4); | 116 . = ALIGN(4); |
108 *(.text) /* .text sections (code) */ | 117 *(.text) /* .text sections (code) */ |
109 *(.text*) /* .text* sections (code) */ | 118 *(.text*) /* .text* sections (code) */ |
110 *(.glue_7) /* glue arm to thumb code */ | 119 *(.glue_7) /* glue arm to thumb code */ |
112 *(.eh_frame) | 121 *(.eh_frame) |
113 | 122 |
114 . = ALIGN(4); | 123 . = ALIGN(4); |
115 _etext = .; /* define a global symbols at end of code */ | 124 _etext = .; /* define a global symbols at end of code */ |
116 } >ROM | 125 } >ROM |
117 | 126 |
118 .preinit_array : | 127 |
128 /********************** Constant data into ROM memory *********************/ | |
129 .rodata : | |
130 { | |
131 . = ALIGN(4); | |
132 *(.rodata) /* .rodata sections (constants, strings, etc.) */ | |
133 *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ | |
134 . = ALIGN(4); | |
135 } >ROM | |
136 | |
137 .ARM.extab : { | |
138 . = ALIGN(4); | |
139 *(.ARM.extab* .gnu.linkonce.armextab.*) | |
140 . = ALIGN(4); | |
141 } >ROM | |
142 | |
143 .ARM : { | |
144 . = ALIGN(4); | |
145 __exidx_start = .; | |
146 *(.ARM.exidx*) | |
147 __exidx_end = .; | |
148 . = ALIGN(4); | |
149 } >ROM | |
150 | |
151 .preinit_array : | |
119 { | 152 { |
120 . = ALIGN(4); | 153 . = ALIGN(4); |
121 PROVIDE_HIDDEN( __preinit_array_start = . ); | 154 PROVIDE_HIDDEN( __preinit_array_start = . ); |
122 KEEP( *(.preinit_array*) ) | 155 KEEP( *(.preinit_array*) ) |
123 PROVIDE_HIDDEN( __preinit_array_end = . ); | 156 PROVIDE_HIDDEN( __preinit_array_end = . ); |
141 KEEP( *(SORT(.fini_array.*)) ) | 174 KEEP( *(SORT(.fini_array.*)) ) |
142 KEEP( *(.fini_array*) ) | 175 KEEP( *(.fini_array*) ) |
143 PROVIDE_HIDDEN( __fini_array_end = . ); | 176 PROVIDE_HIDDEN( __fini_array_end = . ); |
144 . = ALIGN(4); | 177 . = ALIGN(4); |
145 } >ROM | 178 } >ROM |
146 | 179 |
147 /********************** Constant data into ROM memory *********************/ | 180 /************* The program code and other data into ROM memory ************/ |
148 .rodata : | 181 |
149 { | 182 |
150 . = ALIGN(4); | 183 |
151 *(.rodata) /* .rodata sections (constants, strings, etc.) */ | |
152 *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ | |
153 . = ALIGN(4); | |
154 } >ROM | |
155 | |
156 .ARM.extab : { | |
157 . = ALIGN(4); | |
158 *(.ARM.extab* .gnu.linkonce.armextab.*) | |
159 . = ALIGN(4); | |
160 } >ROM | |
161 | |
162 .ARM : { | |
163 . = ALIGN(4); | |
164 __exidx_start = .; | |
165 *(.ARM.exidx*) | |
166 __exidx_end = .; | |
167 . = ALIGN(4); | |
168 } >ROM | |
169 | 184 |
170 /************* Data and Structures at absolute address in ROM *************/ | 185 /************* Data and Structures at absolute address in ROM *************/ |
171 | 186 |
172 /* FIXME: this sets the SFirmwareData structure, not the code ... */ | 187 /* FIXME: this sets the SFirmwareData structure, not the code ... */ |
173 .bootloader_firmware_data 0x0800A000 : { | 188 .bootloader_firmware_data 0x0800A000 : { |
174 PROVIDE( bootloader_FirmwareData = . ); | 189 PROVIDE( bootloader_FirmwareData = . ); |
175 KEEP( *(.bootloader_firmware_data) ) | 190 KEEP( *(.bootloader_firmware_data) ) |
176 } > ROM | 191 } > ROM |
177 | 192 |
178 /* FIMXE: original address was 0x08050000. But we have a collision */ | |
179 .firmware_FirmwareData 0x08060000 : { | |
180 PROVIDE( firmware_FirmwareData = . ); | |
181 KEEP( *(.firmware_firmware_data) ) | |
182 } >ROM | |
183 | 193 |
184 .font_firmware_data 0x08132000 : { | 194 .font_firmware_data 0x08132000 : { |
185 PROVIDE( font_FirmwareData = . ); | 195 PROVIDE( font_FirmwareData = . ); |
186 KEEP( *(.font_firmware_data) ) | 196 KEEP( *(.font_firmware_data) ) |
187 } >UPPER | 197 } >UPPER |
198 | |
199 /* TODO: the linker does not seem to work as the one of used for initial bootloader ==> Reconstruct layout to keep it compatible with the first version */ | |
200 /* TODO: cleanup during next iteration */ | |
188 | 201 |
189 /* Put fonts and images in UPPER region */ | 202 /* Put fonts and images in UPPER region */ |
190 .upper_fonts : { | 203 .upper_fonts 0x08132040 : { |
191 __upper_font_data = .; | 204 __upper_font_data = .; |
192 KEEP( *(.upper_fonts) ) | 205 . = 0x13E; |
206 *(.upper_fonts.image_data_FontT144_0x0030) | |
207 . = 0x02515; | |
208 *(.upper_fonts.image_data_FontT144_0x0031) | |
209 . = 0x03469; | |
210 *(.upper_fonts.image_data_FontT144_0x0032) | |
211 . = 0x4FDC; | |
212 *(.upper_fonts.image_data_FontT144_0x0033) | |
213 . = 0x6862; | |
214 *(.upper_fonts.image_data_FontT144_0x0034) | |
215 . = 0x86C2; | |
216 *(.upper_fonts.image_data_FontT144_0x0035) | |
217 . = 0x9FB3; | |
218 *(.upper_fonts.image_data_FontT144_0x0036) | |
219 . = 0xBB26; | |
220 *(.upper_fonts.image_data_FontT144_0x0037) | |
221 . = 0xD845; | |
222 *(.upper_fonts.image_data_FontT144_0x0038) | |
223 . = 0xF34D; | |
224 *(.upper_fonts.image_data_FontT144_0x0039) | |
225 . = 0x10EC0; | |
226 *(.upper_fonts.image_data_FontT24_0x0020) | |
227 *(.upper_fonts.image_data_FontT24_0x0021) | |
228 *(.upper_fonts.image_data_FontT24_0x0022) | |
229 *(.upper_fonts.image_data_FontT24_0x0023) | |
230 *(.upper_fonts.image_data_FontT24_0x0024) | |
231 *(.upper_fonts.image_data_FontT24_0x0025) | |
232 *(.upper_fonts.image_data_FontT24_0x0026) | |
233 *(.upper_fonts.image_data_FontT24_0x0027) | |
234 *(.upper_fonts.image_data_FontT24_0x0028) | |
235 *(.upper_fonts.image_data_FontT24_0x0029) | |
236 *(.upper_fonts.image_data_FontT24_0x002a) | |
237 *(.upper_fonts.image_data_FontT24_0x003f) | |
238 *(.upper_fonts.image_data_FontT24_0x002c) | |
239 *(.upper_fonts.image_data_FontT24_0x002d) | |
240 *(.upper_fonts.image_data_FontT24_0x002e) | |
241 *(.upper_fonts.image_data_FontT24_0x002f) | |
242 *(.upper_fonts.image_data_FontT24_0x0030) | |
243 *(.upper_fonts.image_data_FontT24_0x0031) | |
244 *(.upper_fonts.image_data_FontT24_0x0032) | |
245 *(.upper_fonts.image_data_FontT24_0x0033) | |
246 *(.upper_fonts.image_data_FontT24_0x0034) | |
247 *(.upper_fonts.image_data_FontT24_0x0035) | |
248 *(.upper_fonts.image_data_FontT24_0x0036) | |
249 *(.upper_fonts.image_data_FontT24_0x0037) | |
250 *(.upper_fonts.image_data_FontT24_0x0038) | |
251 *(.upper_fonts.image_data_FontT24_0x0039) | |
252 *(.upper_fonts.image_data_FontT24_0x003a) | |
253 *(.upper_fonts.image_data_FontT24_0x003b) | |
254 *(.upper_fonts.image_data_FontT24_0x003c) | |
255 *(.upper_fonts.image_data_FontT24_0x003d) | |
256 *(.upper_fonts.image_data_FontT24_0x003e) | |
257 . = . + 0x8c; | |
258 *(.upper_fonts.image_data_FontT24_0x0040) | |
259 *(.upper_fonts.image_data_FontT24_0x0041) | |
260 *(.upper_fonts.image_data_FontT24_0x0042) | |
261 *(.upper_fonts.image_data_FontT24_0x0043) | |
262 *(.upper_fonts.image_data_FontT24_0x0044) | |
263 *(.upper_fonts.image_data_FontT24_0x0045) | |
264 *(.upper_fonts.image_data_FontT24_0x0046) | |
265 *(.upper_fonts.image_data_FontT24_0x0047) | |
266 *(.upper_fonts.image_data_FontT24_0x0048) | |
267 *(.upper_fonts.image_data_FontT24_0x0049) | |
268 *(.upper_fonts.image_data_FontT24_0x004a) | |
269 *(.upper_fonts.image_data_FontT24_0x004b) | |
270 *(.upper_fonts.image_data_FontT24_0x004c) | |
271 *(.upper_fonts.image_data_FontT24_0x004d) | |
272 *(.upper_fonts.image_data_FontT24_0x004e) | |
273 *(.upper_fonts.image_data_FontT24_0x004f) | |
274 *(.upper_fonts.image_data_FontT24_0x0050) | |
275 *(.upper_fonts.image_data_FontT24_0x0051) | |
276 *(.upper_fonts.image_data_FontT24_0x0052) | |
277 *(.upper_fonts.image_data_FontT24_0x0053) | |
278 *(.upper_fonts.image_data_FontT24_0x0054) | |
279 *(.upper_fonts.image_data_FontT24_0x0055) | |
280 *(.upper_fonts.image_data_FontT24_0x0056) | |
281 *(.upper_fonts.image_data_FontT24_0x0057) | |
282 *(.upper_fonts.image_data_FontT24_0x0058) | |
283 *(.upper_fonts.image_data_FontT24_0x0059) | |
284 *(.upper_fonts.image_data_FontT24_0x005a) | |
285 *(.upper_fonts.image_data_FontT24_0x005b) | |
286 *(.upper_fonts.image_data_FontT24_0x005c) | |
287 *(.upper_fonts.image_data_FontT24_0x005d) | |
288 *(.upper_fonts.image_data_FontT24_0x005e) | |
289 *(.upper_fonts.image_data_FontT24_0x005f) | |
290 *(.upper_fonts.image_data_FontT24_0x0060) | |
291 *(.upper_fonts.image_data_FontT24_0x0061) | |
292 *(.upper_fonts.image_data_FontT24_0x0062) | |
293 *(.upper_fonts.image_data_FontT24_0x0063) | |
294 . = . + 0x1c; | |
295 *(.upper_fonts.image_data_FontT24_0x0064) | |
296 *(.upper_fonts.image_data_FontT24_0x0065) | |
297 *(.upper_fonts.image_data_FontT24_0x0066) | |
298 *(.upper_fonts.image_data_FontT24_0x0067) | |
299 *(.upper_fonts.image_data_FontT24_0x0068) | |
300 *(.upper_fonts.image_data_FontT24_0x0069) | |
301 *(.upper_fonts.image_data_FontT24_0x006a) | |
302 *(.upper_fonts.image_data_FontT24_0x006b) | |
303 *(.upper_fonts.image_data_FontT24_0x006c) | |
304 *(.upper_fonts.image_data_FontT24_0x006d) | |
305 *(.upper_fonts.image_data_FontT24_0x006e) | |
306 *(.upper_fonts.image_data_FontT24_0x006f) | |
307 *(.upper_fonts.image_data_FontT24_0x0070) | |
308 *(.upper_fonts.image_data_FontT24_0x0071) | |
309 *(.upper_fonts.image_data_FontT24_0x0072) | |
310 *(.upper_fonts.image_data_FontT24_0x0073) | |
311 *(.upper_fonts.image_data_FontT24_0x0074) | |
312 *(.upper_fonts.image_data_FontT24_0x0075) | |
313 *(.upper_fonts.image_data_FontT24_0x0076) | |
314 *(.upper_fonts.image_data_FontT24_0x0077) | |
315 *(.upper_fonts.image_data_FontT24_0x0078) | |
316 *(.upper_fonts.image_data_FontT24_0x0079) | |
317 *(.upper_fonts.image_data_FontT24_0x007a) | |
318 *(.upper_fonts.image_data_FontT24_0x007b) | |
319 *(.upper_fonts.image_data_FontT24_0x007c) | |
320 . = . + 0x1c; | |
321 *(.upper_fonts.image_data_FontT24_0x007d) | |
322 *(.upper_fonts.image_data_FontT24_0x007e) | |
323 *(.upper_fonts.image_data_FontT24_0x00a1) | |
324 *(.upper_fonts.image_data_FontT24_0x00bf) | |
325 *(.upper_fonts.image_data_FontT24_0x00c1) | |
326 *(.upper_fonts.image_data_FontT24_0x00c4) | |
327 *(.upper_fonts.image_data_FontT24_0x00c6) | |
328 *(.upper_fonts.image_data_FontT24_0x00c7) | |
329 *(.upper_fonts.image_data_FontT24_0x00c9) | |
330 *(.upper_fonts.image_data_FontT24_0x00cd) | |
331 *(.upper_fonts.image_data_FontT24_0x00d1) | |
332 *(.upper_fonts.image_data_FontT24_0x00d3) | |
333 *(.upper_fonts.image_data_FontT24_0x00d6) | |
334 *(.upper_fonts.image_data_FontT24_0x00da) | |
335 *(.upper_fonts.image_data_FontT24_0x00dc) | |
336 *(.upper_fonts.image_data_FontT24_0x00df) | |
337 *(.upper_fonts.image_data_FontT24_0x00e0) | |
338 *(.upper_fonts.image_data_FontT24_0x00e1) | |
339 *(.upper_fonts.image_data_FontT24_0x00e2) | |
340 *(.upper_fonts.image_data_FontT24_0x00e4) | |
341 *(.upper_fonts.image_data_FontT24_0x00e6) | |
342 *(.upper_fonts.image_data_FontT24_0x00e7) | |
343 *(.upper_fonts.image_data_FontT24_0x00e8) | |
344 *(.upper_fonts.image_data_FontT24_0x00e9) | |
345 *(.upper_fonts.image_data_FontT24_0x00ec) | |
346 *(.upper_fonts.image_data_FontT24_0x00ed) | |
347 *(.upper_fonts.image_data_FontT24_0x00f0) | |
348 *(.upper_fonts.image_data_FontT24_0x00f1) | |
349 *(.upper_fonts.image_data_FontT24_0x00f2) | |
350 *(.upper_fonts.image_data_FontT24_0x00f3) | |
351 *(.upper_fonts.image_data_FontT24_0x00f6) | |
352 *(.upper_fonts.image_data_FontT24_0x00f9) | |
353 *(.upper_fonts.image_data_FontT24_0x00fa) | |
354 *(.upper_fonts.image_data_FontT24_0x00fc) | |
355 *(.upper_fonts.image_data_FontT24_0x00ff) | |
356 *(.upper_fonts.image_data_FontT24_0x0152) | |
357 *(.upper_fonts.image_data_FontT24_0x0153) | |
358 *(.upper_fonts.image_data_FontT24_0x0178) | |
359 *(.upper_fonts.image_data_FontT24_0x002b) | |
360 . = . + 0x1d642; | |
361 *(.upper_images.image_data_ostc_fuer_Tauchcomputer_240px) | |
362 *(.upper_fonts.image_data_FontT84_0x002e) | |
363 . = . + 0x9f; | |
364 *(.upper_fonts.image_data_FontT84_0x0030) | |
365 . = . + 0x0d; | |
366 *(.upper_fonts.image_data_FontT84_0x0031) | |
367 . = . + 0xaa; | |
368 *(.upper_fonts.image_data_FontT84_0x0032) | |
369 . = . + 0x7b; | |
370 *(.upper_fonts.image_data_FontT84_0x0033) | |
371 . = . + 0x38; | |
372 *(.upper_fonts.image_data_FontT84_0x0034) | |
373 . = . + 0x7f; | |
374 *(.upper_fonts.image_data_FontT84_0x0035) | |
375 . = . + 0x77; | |
376 *(.upper_fonts.image_data_FontT84_0x0036) | |
377 . = . + 0x7b; | |
378 *(.upper_fonts.image_data_FontT84_0x0037) | |
379 . = . + 0x0d; | |
380 *(.upper_fonts.image_data_FontT84_0x0038) | |
381 . = . + 0x2b; | |
382 *(.upper_fonts.image_data_FontT84_0x0039) | |
383 . = . + 0xe8; | |
384 *(.upper_fonts.image_data_FontT54_0x0022) | |
385 *(.upper_fonts.image_data_FontT54_0x0025) | |
386 . = . + 0x112; | |
387 *(.upper_fonts.image_data_FontT54_0x0027) | |
388 . = . + 0xd8; | |
389 *(.upper_fonts.image_data_FontT54_0x002a) | |
390 . = . + 0x133; | |
391 *(.upper_fonts.image_data_FontT54_0x002d) | |
392 . = . + 0x1d7; | |
393 *(.upper_fonts.image_data_FontT54_0x002e) | |
394 . = . + 0x17b; | |
395 *(.upper_fonts.image_data_FontT54_0x002f) | |
396 . = . + 0x02; | |
397 *(.upper_fonts.image_data_FontT54_0x0030) | |
398 . = . + 0x0ba; | |
399 *(.upper_fonts.image_data_FontT54_0x0031) | |
400 . = . + 0x27d; | |
401 *(.upper_fonts.image_data_FontT54_0x0032) | |
402 . = . + 0xe3; | |
403 *(.upper_fonts.image_data_FontT54_0x0033) | |
404 . = . + 0x35; | |
405 *(.upper_fonts.image_data_FontT54_0x0034) | |
406 . = . + 0x68; | |
407 *(.upper_fonts.image_data_FontT54_0x0035) | |
408 . = . + 0x35; | |
409 *(.upper_fonts.image_data_FontT54_0x0036) | |
410 . = . + 0xba; | |
411 *(.upper_fonts.image_data_FontT54_0x0037) | |
412 . = . + 0x191; | |
413 *(.upper_fonts.image_data_FontT54_0x0038) | |
414 . = . + 0xe3; | |
415 *(.upper_fonts.image_data_FontT54_0x0039) | |
416 . = . + 0xe3; | |
417 *(.upper_fonts.image_data_FontT54_0x003a) | |
418 . = . + 0x7b; | |
419 *(.upper_fonts.image_data_FontT54_0x0043) | |
420 . = . + 0x3b; | |
421 *(.upper_fonts.image_data_FontT54_0x006c) | |
422 . = . + 0x2d; | |
423 *(.upper_fonts.image_data_FontT54_0x006d) | |
424 . = . + 0x94; | |
425 *(.upper_fonts.image_data_FontT54_0x00ba) | |
426 . = . + 0x0a; | |
427 | |
428 *(.upper_fonts.image_data_FontT105_0x002*) | |
429 *(.upper_fonts.image_data_FontT105_0x003*) | |
430 *(.upper_fonts.image_data_FontT105_0x0043) | |
431 . = . + 0x17c8; | |
432 *(.upper_fonts.image_data_FontT105_0x007c) | |
433 *(.upper_fonts.image_data_FontT105_0x00ba) | |
434 *(.upper_fonts.image_data_FontT105_54_0x006d) | |
435 | |
436 *(.upper_fonts.image_data_FontT54_0x0068) | |
437 . = . + 0x1195; | |
438 | |
439 *(.upper_fonts.image_data_FontT42_0x00b0) | |
440 *(.upper_fonts.image_data_FontT42_0x0020) | |
441 . = . + 0x23; | |
442 *(.upper_fonts.image_data_FontT42_0x002*) | |
443 *(.upper_fonts.image_data_FontT42_0x003*) | |
444 *(.upper_fonts.image_data_FontT42_0x004*) | |
445 *(.upper_fonts.image_data_FontT42_0x005*) | |
446 . = . + 0x420; | |
447 *(.upper_fonts.image_data_FontT42_0x006*) | |
448 *(.upper_fonts.image_data_FontT42_0x0070) | |
449 *(.upper_fonts.image_data_FontT42_0x0071) | |
450 *(.upper_fonts.image_data_FontT42_0x0072) | |
451 *(.upper_fonts.image_data_FontT42_0x0073) | |
452 *(.upper_fonts.image_data_FontT42_0x0074) | |
453 *(.upper_fonts.image_data_FontT42_0x0075) | |
454 *(.upper_fonts.image_data_FontT42_0x0076) | |
455 *(.upper_fonts.image_data_FontT42_0x0077) | |
456 *(.upper_fonts.image_data_FontT42_0x0078) | |
457 *(.upper_fonts.image_data_FontT42_0x0079) | |
458 . = . + 0x12c0; | |
459 *(.upper_fonts.image_data_FontT42_*) | |
460 *(.upper_fonts.image_data_T54addon_0x002b_PLUS*) | |
461 *(.upper_fonts.image_data_T54addon_0x0040_AT*) | |
462 *(.upper_fonts.image_data_FontT48_*) | |
463 *(.upper_fonts.image_data_FontT48addon*) | |
464 *(.upper_fonts.image_data_FontT24plus_0x00fb*) | |
465 *(.upper_fonts.image_data_awe48_*) | |
466 | |
467 /**(.upper_fonts*)*/ | |
193 __upper_font_data_end = .; | 468 __upper_font_data_end = .; |
194 } >UPPER | 469 } >UPPER |
195 | 470 |
196 .upper_font_directory 0x081E0000 : { /* Last 128 KBytes of UPPER ROM */ | 471 /* Put fonts and images in UPPER region */ |
472 /* | |
473 .upper_images : { | |
474 __upper_image_data = .; | |
475 KEEP( *(.upper_images) ) | |
476 __upper_image_data_end = .; | |
477 } >ROM UPPER */ | |
478 | |
479 | |
480 .upper_font_directory /*0x081E0000*/ : { /* Last 128 KBytes of UPPER ROM */ | |
197 | 481 |
198 /* Define Known Address for Each Font */ | 482 /* Define Known Address for Each Font */ |
199 __font_directory = .; | 483 __font_directory = .; |
200 PROVIDE( Awe48 = __font_directory + 0 * 0xc ); | 484 /* PROVIDE( Awe48 = __font_directory + 0 * 0xc ); |
201 PROVIDE( FontT24 = __font_directory + 1 * 0xc ); | 485 PROVIDE( FontT24 = __font_directory + 1 * 0xc ); |
202 PROVIDE( FontT42 = __font_directory + 2 * 0xc ); | 486 PROVIDE( FontT42 = __font_directory + 2 * 0xc ); |
203 PROVIDE( FontT48 = __font_directory + 3 * 0xc ); | 487 PROVIDE( FontT48 = __font_directory + 3 * 0xc ); |
204 PROVIDE( FontT54 = __font_directory + 4 * 0xc ); | 488 PROVIDE( FontT54 = __font_directory + 4 * 0xc ); |
205 PROVIDE( FontT84 = __font_directory + 5 * 0xc ); | 489 PROVIDE( FontT84 = __font_directory + 5 * 0xc ); |
206 PROVIDE( FontT105 = __font_directory + 6 * 0xc ); | 490 PROVIDE( FontT105 = __font_directory + 6 * 0xc ); |
207 PROVIDE( FontT144 = __font_directory + 7 * 0xc ); | 491 PROVIDE( FontT144 = __font_directory + 7 * 0xc ); |
208 PROVIDE( Batt24 = __font_directory + 8 * 0xc ); | 492 PROVIDE( Batt24 = __font_directory + 8 * 0xc ); */ |
209 __font_directory_end = __font_directory + 9 * 0xc; | 493 __font_directory_end = __font_directory + 9 * 0xc; |
210 | 494 |
211 KEEP( *(.upper_font_directory) ) | 495 *(.upper_font_directory) |
496 __font_directory_end = .; | |
212 LONG( -1 ); /* Magic End Marker */ | 497 LONG( -1 ); /* Magic End Marker */ |
213 | 498 |
214 /* and for Each Image */ | 499 /* and for Each Image */ |
215 __image_directory = .; | 500 /* __image_directory = .; */ |
216 PROVIDE( ImgHWcolor = __image_directory + 0 * 8 ); | 501 /* PROVIDE( ImgHWcolor = __image_directory + 0 * 8 ); |
217 PROVIDE( ImgOSTC = __image_directory + 1 * 8 ); | 502 PROVIDE( ImgOSTC = __image_directory + 1 * 8 ); */ |
218 __image_directory_end = __image_directory + 2 * 8; | 503 /* __image_directory_end = __image_directory + 2 * 8; */ |
504 | |
505 /* KEEP( *(.upper_image_directory) ) */ | |
219 | 506 |
220 /* FIXME: shall KEEP images here */ | 507 /* FIXME: shall KEEP images here */ |
221 LONG( -1 ); /* Magic End Marker */ | 508 LONG( -1 ); /* Magic End Marker */ |
222 | 509 |
223 /* and for CLUT */ | 510 /* and for CLUT */ |
224 PROVIDE( indexHWcolor = . ); | 511 /* PROVIDE( indexHWcolor = . ); */ |
225 . += 0x400; | 512 . += 0x400; |
226 LONG( -1 ); /* Magic End Marker */ | 513 LONG( -1 ); /* Magic End Marker */ |
227 } >UPPER | 514 } >ROM /*UPPER*/ |
228 | 515 |
516 | |
517 /* Used by the startup to initialize data */ | |
518 _sidata = LOADADDR(.data); | |
519 | |
229 /************ Initialized Data Sections into RAM & ROM Memory **************/ | 520 /************ Initialized Data Sections into RAM & ROM Memory **************/ |
230 .data : | 521 .data : |
231 { | 522 { |
232 . = ALIGN(4); | 523 . = ALIGN(4); |
233 | 524 |
238 | 529 |
239 . = ALIGN(4); | 530 . = ALIGN(4); |
240 _edata = .; /* define a global symbol at data end */ | 531 _edata = .; /* define a global symbol at data end */ |
241 } >RAM AT>ROM | 532 } >RAM AT>ROM |
242 | 533 |
534 | |
535 | |
243 /*************** Uninitialized Data Section into RAM Memory ****************/ | 536 /*************** Uninitialized Data Section into RAM Memory ****************/ |
244 .bss : | 537 .bss : |
245 { | 538 { |
246 . = ALIGN(4); | 539 . = ALIGN(4); |
247 | 540 |
255 . = ALIGN(4); | 548 . = ALIGN(4); |
256 _ebss = .; /* define a global symbol at bss end */ | 549 _ebss = .; /* define a global symbol at bss end */ |
257 __bss_end__ = _ebss; | 550 __bss_end__ = _ebss; |
258 } >RAM | 551 } >RAM |
259 | 552 |
260 /********************** User_heap_stack section ****************************/ | 553 /********************** User_heap_stack section ****************************/ |
261 /* just to check that there is enough RAM left */ | 554 /* just to check that there is enough RAM left */ |
262 ._user_heap_stack : | 555 ._user_heap_stack : |
263 { | 556 { |
264 . = ALIGN(8); | 557 . = ALIGN(8); |
265 PROVIDE ( end = . ); | 558 PROVIDE ( end = . ); |
266 PROVIDE ( _end = . ); | 559 PROVIDE ( _end = . ); |
267 . = . + _Min_Heap_Size; | 560 . = . + _Min_Heap_Size; |
268 . = . + _Min_Stack_Size; | 561 . = . + _Min_Stack_Size; |
269 . = ALIGN(8); | 562 . = ALIGN(8); |
563 _estack = .; | |
270 } >RAM | 564 } >RAM |
271 | 565 |
272 /* Remove information from the compiler libraries */ | 566 /* Remove information from the compiler libraries */ |
273 /DISCARD/ : | 567 /DISCARD/ : |
274 { | 568 { |