blob: 8c23e43f4b1d66419c5366707a6b79be6ec67655 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
/*###ICF### Section handled by ICF editor, don't touch! ****/
/*-Editor annotation file-*/
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v2_1.xml" */
/*-Specials-*/
define symbol __ICFEDIT_intvec_start__ = 0x00000000;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_IROM1_start__ = 0x00000000;
define symbol __ICFEDIT_region_IROM1_end__ = 0x0007FFFF;
define symbol __ICFEDIT_region_IROM2_start__ = 0x0;
define symbol __ICFEDIT_region_IROM2_end__ = 0x0;
define symbol __ICFEDIT_region_EROM1_start__ = 0x0;
define symbol __ICFEDIT_region_EROM1_end__ = 0x0;
define symbol __ICFEDIT_region_EROM2_start__ = 0x0;
define symbol __ICFEDIT_region_EROM2_end__ = 0x0;
define symbol __ICFEDIT_region_EROM3_start__ = 0x0;
define symbol __ICFEDIT_region_EROM3_end__ = 0x0;
define symbol __ICFEDIT_region_IRAM1_start__ = 0x20000000;
define symbol __ICFEDIT_region_IRAM1_end__ = 0x20017FFF;
define symbol __ICFEDIT_region_IRAM2_start__ = 0x0;
define symbol __ICFEDIT_region_IRAM2_end__ = 0x0;
define symbol __ICFEDIT_region_ERAM1_start__ = 0x0;
define symbol __ICFEDIT_region_ERAM1_end__ = 0x0;
define symbol __ICFEDIT_region_ERAM2_start__ = 0x0;
define symbol __ICFEDIT_region_ERAM2_end__ = 0x0;
define symbol __ICFEDIT_region_ERAM3_start__ = 0x0;
define symbol __ICFEDIT_region_ERAM3_end__ = 0x0;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x800;
define symbol __ICFEDIT_size_proc_s_stack__ = 0x0;
define symbol __ICFEDIT_size_main_ns_stack__ = 0x0;
define symbol __ICFEDIT_size_proc_ns_stack__ = 0x0;
define symbol __ICFEDIT_size_heap__ = 0x0;
/**** End of ICF editor section. ###ICF###*/
/* Flash Organization
* 1. Privileged Code:
* Start : 0x00000000
* End : 0x00006FFF
* Size : 28 Kbytes
* 2. System calls:
* Start : 0x00007000
* End : 0x00007FFF
* Size : 4 Kbytes
* 3. Unprivileged Code:
* Start : 0x00008000
* End : 0x0007FFFF
* Size : 480 Kbytes
*/
define symbol __region_ROM_Privileged_start__ = 0x00000000;
define symbol __region_ROM_Privileged_end__ = 0x00006FFF;
define symbol __region_ROM_SystemCalls_start__ = 0x00007000;
define symbol __region_ROM_SystemCalls_end__ = 0x00007FFF;
define symbol __region_ROM_Unprivileged_start__ = 0x00008000;
define symbol __region_ROM_Unprivileged_end__ = 0x0007FFFF;
/* RAM Organization
* 1. Privileged Data:
* Start : 0x20000000
* End : 0x20007FFF
* Size : 32 Kbytes
* 2. Unprivileged Data:
* Start : 0x20008000
* End : 0x20017FFF
* Size : 64 Kbytes
*/
define symbol __region_RAM_Privileged_start__ = 0x20000000;
define symbol __region_RAM_Privileged_end__ = 0x20007FFF;
define symbol __region_RAM_Unprivileged_start__ = 0x20008000;
define symbol __region_RAM_Unprivileged_end__ = 0x20017FFF;
/* Memory Regions. */
define memory mem with size = 4G;
define region ROM_Privileged_region = mem:[from __region_ROM_Privileged_start__ to __region_ROM_Privileged_end__];
define region ROM_SystemCalls_region = mem:[from __region_ROM_SystemCalls_start__ to __region_ROM_SystemCalls_end__];
define region ROM_Unprivileged_region = mem:[from __region_ROM_Unprivileged_start__ to __region_ROM_Unprivileged_end__];
define region RAM_Privileged_region = mem:[from __region_RAM_Privileged_start__ to __region_RAM_Privileged_end__];
define region RAM_Unprivileged_region = mem:[from __region_RAM_Unprivileged_start__ to __region_RAM_Unprivileged_end__];
/* Stack and Heap. */
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
define block PROC_STACK_S with alignment = 8, size = __ICFEDIT_size_proc_s_stack__ { };
define block MAIN_STACK_NS with alignment = 8, size = __ICFEDIT_size_main_ns_stack__ { };
define block PROC_STACK_NS with alignment = 8, size = __ICFEDIT_size_proc_ns_stack__ { };
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
/* Initialization. */
do not initialize { section .noinit };
initialize by copy { readwrite };
if( isdefinedsymbol(__USE_DLIB_PERTHREAD) )
{
/* Required in a multi-threaded application. */
initialize by copy with packing = none { section __DLIB_PERTHREAD };
}
/* Exported symbols. */
define exported symbol __privileged_functions_start__ = __region_ROM_Privileged_start__;
define exported symbol __privileged_functions_end__ = __region_ROM_Privileged_end__;
define exported symbol __syscalls_flash_start__ = __region_ROM_SystemCalls_start__;
define exported symbol __syscalls_flash_end__ = __region_ROM_SystemCalls_end__;
define exported symbol __unprivileged_flash_start__ = __region_ROM_Unprivileged_start__;
define exported symbol __unprivileged_flash_end__ = __region_ROM_Unprivileged_end__;
define exported symbol __privileged_sram_start__ = __region_RAM_Privileged_start__;
define exported symbol __privileged_sram_end__ = __region_RAM_Privileged_end__;
/* Placements. */
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
place in ROM_Privileged_region { readonly section privileged_functions };
place in ROM_SystemCalls_region { readonly section freertos_system_calls };
place in ROM_Unprivileged_region { readonly };
place in RAM_Privileged_region { readwrite section privileged_data };
place in RAM_Unprivileged_region { readwrite,
block CSTACK, block PROC_STACK_S, block MAIN_STACK_NS, block PROC_STACK_NS, block HEAP };
|