]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_MPU_STM32L4_Discovery_Keil_STM32Cube/Projects/IAR/stm32l475xx_flash.icf
Make vSetupTimerInterrupt weak in the RVDS M4 MPU port to give the
[freertos] / FreeRTOS / Demo / CORTEX_MPU_STM32L4_Discovery_Keil_STM32Cube / Projects / IAR / stm32l475xx_flash.icf
1 /*###ICF### Section handled by ICF editor, don't touch! ****/\r
2 /*-Editor annotation file-*/\r
3 /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */\r
4 /*-Specials-*/\r
5 define symbol __ICFEDIT_intvec_start__ = 0x08000000;\r
6 /*-Memory Regions-*/\r
7 define symbol __ICFEDIT_region_ROM_start__    = 0x08000000;\r
8 define symbol __ICFEDIT_region_ROM_end__      = 0x080FFFFF;\r
9 define symbol __ICFEDIT_region_RAM_start__    = 0x20000000;\r
10 define symbol __ICFEDIT_region_RAM_end__      = 0x20017FFF;\r
11 \r
12 /*-Sizes-*/\r
13 define symbol __ICFEDIT_size_cstack__ = 0x400;\r
14 define symbol __ICFEDIT_size_heap__ = 0x200;\r
15 /**** End of ICF editor section. ###ICF###*/\r
16 \r
17 /* Flash Organization\r
18  *  1. Privileged Code:\r
19  *      Start   : 0x08000000\r
20  *      End     : 0x08007FFF\r
21  *      Size    : 32 Kbytes\r
22  *  2. System calls:\r
23  *      Start   : 0x08008000\r
24  *      End     : 0x08008FFF\r
25  *      Size    : 4 Kbytes\r
26  *  3. Unprivileged Code:\r
27  *      Start   : 0x08009000\r
28  *      End     : 0x080FFFFF\r
29  *      Size    : 988 Kbytes\r
30  */\r
31 define symbol __reigon_ROM_privileged_start__   = __ICFEDIT_region_ROM_start__;\r
32 define symbol __reigon_ROM_privileged_end__     = 0x08007FFF;\r
33 define symbol __reigon_ROM_system_calls_start__ = 0x08008000;\r
34 define symbol __reigon_ROM_system_calls_end__   = 0x08008FFF;\r
35 define symbol __reigon_ROM_unprivileged_start__ = 0x08009000;\r
36 define symbol __reigon_ROM_unprivileged_end__   = __ICFEDIT_region_ROM_end__;\r
37 \r
38 /* RAM Organization\r
39  *  1. Privileged Data:\r
40  *      Start   : 0x20000000\r
41  *      End     : 0x200003FF\r
42  *      Size    : 1 Kbytes\r
43  *  2. Unprivileged Data:\r
44  *      Start   : 0x20000400\r
45  *      End     : 0x20017FFF\r
46  *      Size    : 95 Kbytes\r
47  */\r
48 define symbol __region_RAM_privileged_start__   = __ICFEDIT_region_RAM_start__;\r
49 define symbol __region_RAM_privileged_end__     = 0x200003FF;\r
50 define symbol __region_RAM_unprivileged_start__ = 0x20000400;\r
51 define symbol __region_RAM_unprivileged_end__   = __ICFEDIT_region_RAM_end__;\r
52 define symbol __region_SRAM2_start__            = 0x10000000;\r
53 define symbol __region_SRAM2_end__              = 0x10007FFF;\r
54 \r
55 /* Memory regions. */\r
56 define memory mem with size = 4G;\r
57 define region ROM_region_privileged     = mem:[from __reigon_ROM_privileged_start__ to __reigon_ROM_privileged_end__];\r
58 define region ROM_region_system_calls   = mem:[from __reigon_ROM_system_calls_start__ to __reigon_ROM_system_calls_end__];\r
59 define region ROM_region_unprivileged   = mem:[from __reigon_ROM_unprivileged_start__ to __reigon_ROM_unprivileged_end__];\r
60 define region RAM_region_privileged     = mem:[from __region_RAM_privileged_start__   to __region_RAM_privileged_end__];\r
61 define region RAM_region_unprivileged   = mem:[from __region_RAM_unprivileged_start__   to __region_RAM_unprivileged_end__];\r
62 define region SRAM2_region              = mem:[from __region_SRAM2_start__   to __region_SRAM2_end__];\r
63 \r
64 /* Stack and Heap. */\r
65 define block CSTACK    with alignment = 8, size = __ICFEDIT_size_cstack__   { };\r
66 define block HEAP      with alignment = 8, size = __ICFEDIT_size_heap__     { };\r
67 \r
68 /* Initialization. */\r
69 initialize by copy { readwrite };\r
70 do not initialize  { section .noinit };\r
71 \r
72 /* Exported symbols. */\r
73 define exported symbol __FLASH_segment_start__          = __ICFEDIT_region_ROM_start__;\r
74 define exported symbol __FLASH_segment_end__            = __ICFEDIT_region_ROM_end__;\r
75 define exported symbol __SRAM_segment_start__           = __ICFEDIT_region_RAM_start__;\r
76 define exported symbol __SRAM_segment_end__             = __ICFEDIT_region_RAM_end__;\r
77 \r
78 define exported symbol __privileged_functions_start__   = __reigon_ROM_privileged_start__;\r
79 define exported symbol __privileged_functions_end__     = __reigon_ROM_privileged_end__;\r
80 define exported symbol __privileged_data_start__        = __region_RAM_privileged_start__;\r
81 define exported symbol __privileged_data_end__          = __region_RAM_privileged_end__;\r
82 \r
83 define exported symbol __syscalls_flash_start__         = __reigon_ROM_system_calls_start__;\r
84 define exported symbol __syscalls_flash_end__           = __reigon_ROM_system_calls_end__;\r
85 \r
86 /* Placements. */\r
87 place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };\r
88 \r
89 place in ROM_region_privileged      { readonly section privileged_functions };\r
90 place in ROM_region_system_calls    { readonly section freertos_system_calls };\r
91 place in ROM_region_unprivileged    { readonly };\r
92 \r
93 place in RAM_region_privileged      { readwrite section privileged_data };\r
94 place in RAM_region_unprivileged    { readwrite,\r
95                                       block CSTACK, block HEAP }; \r
96 place in SRAM2_region               { };\r