diff options
Diffstat (limited to 'lib/chibios/demos/STM32/RT-STM32F303-DISCOVERY/iar/ch.icf')
-rw-r--r-- | lib/chibios/demos/STM32/RT-STM32F303-DISCOVERY/iar/ch.icf | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/lib/chibios/demos/STM32/RT-STM32F303-DISCOVERY/iar/ch.icf b/lib/chibios/demos/STM32/RT-STM32F303-DISCOVERY/iar/ch.icf new file mode 100644 index 000000000..268fbaf36 --- /dev/null +++ b/lib/chibios/demos/STM32/RT-STM32F303-DISCOVERY/iar/ch.icf | |||
@@ -0,0 +1,52 @@ | |||
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 | |||
6 | define symbol __ICFEDIT_intvec_start__ = 0x08000000; | ||
7 | |||
8 | /*-Memory Regions-*/ | ||
9 | define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; | ||
10 | define symbol __ICFEDIT_region_ROM_end__ = 0x0803FFFF; | ||
11 | define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; | ||
12 | define symbol __ICFEDIT_region_RAM_end__ = 0x20009FFF; | ||
13 | |||
14 | /*-Sizes-*/ | ||
15 | define symbol __ICFEDIT_size_cstack__ = 0x400; /* Size of the process stack */ | ||
16 | define symbol __ICFEDIT_size_heap__ = 0x100; /* Used to mark heap (heap + sysheap) maximum size limit */ | ||
17 | /**** End of ICF editor section. ###ICF###*/ | ||
18 | |||
19 | /* Size of the IRQ Stack (Main Stack).*/ | ||
20 | define symbol __ICFEDIT_size_irqstack__ = 0x400; | ||
21 | |||
22 | define memory mem with size = 4G; | ||
23 | define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; | ||
24 | define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; | ||
25 | |||
26 | define block IRQSTACK with alignment = 8, size = __ICFEDIT_size_irqstack__, fixed order { }; | ||
27 | define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__, fixed order {section CSTACK}; | ||
28 | define block DATABSS with alignment = 8, fixed order {readwrite, zeroinit}; | ||
29 | define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__, fixed order {section HEAP}; | ||
30 | define block SYSHEAP with alignment = 8 {section SYSHEAP}; | ||
31 | |||
32 | initialize by copy {readwrite}; | ||
33 | do not initialize {section .noinit}; | ||
34 | |||
35 | keep { section .intvec }; | ||
36 | |||
37 | place at address mem:__ICFEDIT_intvec_start__ {readonly section .intvec}; | ||
38 | |||
39 | place in ROM_region {readonly}; | ||
40 | |||
41 | place at start of RAM_region {block IRQSTACK}; /* Main stack which becomes IRQ stack */ | ||
42 | place in RAM_region {block CSTACK}; /* Process stack */ | ||
43 | place in RAM_region {block DATABSS}; /* Textdata region */ | ||
44 | place in RAM_region {block HEAP}; /* Sys Heap size limit marker */ | ||
45 | place at end of RAM_region {block SYSHEAP}; /* Sys Heap available for allocations */ | ||
46 | |||
47 | /* Define stack and memory addresses for kernel usage */ | ||
48 | define exported symbol __main_stack_base__ = __ICFEDIT_region_RAM_start__; | ||
49 | define exported symbol __main_stack_end__ = __main_stack_base__ + __ICFEDIT_size_irqstack__; /* Note: End refers to empty stack */ | ||
50 | define exported symbol __process_stack_base__ = __main_stack_end__; | ||
51 | define exported symbol __main_thread_stack_base__ = __process_stack_base__; /* Note: Main thread uses process stack */ | ||
52 | define exported symbol __process_stack_end__ = __process_stack_base__ + __ICFEDIT_size_cstack__; | ||