Skip to content

Commit 4f82e34

Browse files
committed
[STM32F207ZG] Fix IAR memory init
The icf file was not align with other targets and they were no reserved space for NVIC vectors.
1 parent dd36dc4 commit 4f82e34

File tree

1 file changed

+22
-22
lines changed
  • hal/targets/cmsis/TARGET_STM/TARGET_STM32F2/TARGET_NUCLEO_F207ZG/TOOLCHAIN_IAR

1 file changed

+22
-22
lines changed
Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,31 @@
1-
/*###ICF### Section handled by ICF editor, don't touch! ****/
2-
/*-Editor annotation file-*/
3-
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
4-
/*-Specials-*/
5-
define symbol __ICFEDIT_intvec_start__ = 0x08000000;
6-
/*-Memory Regions-*/
7-
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000;
8-
define symbol __ICFEDIT_region_ROM_end__ = 0x080FFFFF;
9-
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000;
10-
define symbol __ICFEDIT_region_RAM_end__ = 0x20020000;
11-
/*-Sizes-*/
12-
define symbol __ICFEDIT_size_cstack__ = 0x400;
13-
define symbol __ICFEDIT_size_heap__ = 0x200;
14-
/**** End of ICF editor section. ###ICF###*/
1+
/* [ROM = 1024kb = 0x100000] */
2+
define symbol __intvec_start__ = 0x08000000;
3+
define symbol __region_ROM_start__ = 0x08000000;
4+
define symbol __region_ROM_end__ = 0x080FFFFF;
155

6+
/* [RAM = 128kb = 0x20000] Vector table dynamic copy: 97 vectors = 388 bytes (0x184) to be reserved in RAM */
7+
define symbol __NVIC_start__ = 0x20000000;
8+
define symbol __NVIC_end__ = 0x20000187; /*aligned on 8 bytes */
9+
define symbol __region_RAM_start__ = 0x20000188;
10+
define symbol __region_RAM_end__ = 0x2001FFFF;
1611

12+
/* Memory regions */
1713
define memory mem with size = 4G;
18-
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
19-
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
14+
define region ROM_region = mem:[from __region_ROM_start__ to __region_ROM_end__];
15+
define region RAM_region = mem:[from __region_RAM_start__ to __region_RAM_end__];
2016

21-
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
22-
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
17+
/* Stack and Heap */
18+
/*Heap 1/4 of ram and stack 1/8*/
19+
define symbol __size_cstack__ = 0x4000;
20+
define symbol __size_heap__ = 0x8000;
21+
define block CSTACK with alignment = 8, size = __size_cstack__ { };
22+
define block HEAP with alignment = 8, size = __size_heap__ { };
23+
define block STACKHEAP with fixed order { block HEAP, block CSTACK };
2324

24-
initialize by copy { readwrite };
25+
initialize by copy with packing = zeros { readwrite };
2526
do not initialize { section .noinit };
2627

27-
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
28+
place at address mem:__intvec_start__ { readonly section .intvec };
2829

2930
place in ROM_region { readonly };
30-
place in RAM_region { readwrite,
31-
block CSTACK, block HEAP };
31+
place in RAM_region { readwrite, block STACKHEAP };

0 commit comments

Comments
 (0)