32
32
33
33
MEMORY
34
34
{
35
- CODE_RAM (rx) : ORIGIN = NS_CODE_START, LENGTH = ((TOTAL_CODE_SRAM_SIZE / 2) - BL2_HEADER_SIZE)
35
+ FLASH (rx) : ORIGIN = NS_CODE_START, LENGTH = NS_CODE_SIZE
36
36
/* Vector table is copied to RAM, so RAM address needs to be adjusted */
37
37
RAM (rwx) : ORIGIN = NVIC_RAM_VECTOR_LIMIT, LENGTH = (NS_DATA_SIZE - NVIC_RAM_VECTOR_SIZE)
38
38
}
@@ -46,37 +46,20 @@ ENTRY(Reset_Handler)
46
46
47
47
SECTIONS
48
48
{
49
- /* Startup section is loaded to Flash and runs from Flash */
50
- .startup :
49
+ .text :
51
50
{
52
51
KEEP(*(.vectors))
53
52
__Vectors_End = .;
54
53
__Vectors_Size = __Vectors_End - __Vectors;
55
54
__end__ = .;
56
55
56
+ *(.text*)
57
57
KEEP(*(.init))
58
58
KEEP(*(.fini))
59
59
60
- } > CODE_RAM
61
60
62
- .ARM.extab :
63
- {
64
- *(.ARM.extab* .gnu.linkonce.armextab.*)
65
- } > CODE_RAM
66
61
67
- __exidx_start = .;
68
- .ARM.exidx :
69
- {
70
- *(.ARM.exidx* .gnu.linkonce.armexidx.*)
71
- } > CODE_RAM
72
- __exidx_end = .;
73
62
74
- /* The text section is loaded into Flash but runs from SRAM
75
- * The load address is aligned to 8 bytes
76
- */
77
- .text : ALIGN (8)
78
- {
79
- *(.text*)
80
63
81
64
/* .ctors */
82
65
*crtbegin.o (.ctors)
@@ -95,25 +78,26 @@ SECTIONS
95
78
*(.rodata*)
96
79
97
80
KEEP(*(.eh_frame*))
98
- } >CODE_RAM
99
- . = ALIGN (8); /* This alignment is needed to make the section size 8 bytes aligned */
100
-
101
- /* Create same symbols that armclang does so that in the c files
102
- * we do not have to deal with the compiler type
103
- */
104
- Image$$ER_CODE_SRAM$$Base = ADDR (.text);
105
- Image$$ER_CODE_SRAM$$Limit = .;
106
- Image$$ER_CODE_SRAM$$Length = Image$$ER_CODE_SRAM$$Limit - Image$$ER_CODE_SRAM$$Base;
107
- Load$$ER_CODE_SRAM$$Base = LOADADDR (.text);
108
- Load$$ER_CODE_SRAM$$Length = Image$$ER_CODE_SRAM$$Length;
109
- Load$$ER_CODE_SRAM$$Limit = Load$$ER_CODE_SRAM$$Base + Load$$ER_CODE_SRAM$$Length;
81
+ } > FLASH
82
+
83
+ .ARM.extab :
84
+ {
85
+ *(.ARM.extab* .gnu.linkonce.armextab.*)
86
+ } > FLASH
87
+
88
+ __exidx_start = .;
89
+ .ARM.exidx :
90
+ {
91
+ *(.ARM.exidx* .gnu.linkonce.armexidx.*)
92
+ } > FLASH
93
+ __exidx_end = .;
110
94
111
95
/* To copy multiple ROM to RAM sections,
112
96
* define etext2/data2_start/data2_end and
113
97
* define __STARTUP_COPY_MULTIPLE in startup_cmsdk_musca_ns.S */
114
98
.copy.table :
115
99
{
116
- . = ALIGN (8 );
100
+ . = ALIGN (4 );
117
101
__copy_table_start__ = .;
118
102
LONG (__etext )
119
103
LONG (__data_start__ )
@@ -122,64 +106,65 @@ SECTIONS
122
106
LONG (DEFINED(__data2_start__ ) ? __data2_start__ : 0)
123
107
LONG (DEFINED(__data2_start__ ) ? __data2_end__ - __data2_start__ : 0)
124
108
__copy_table_end__ = .;
125
- } > CODE_RAM
109
+ } > FLASH
126
110
127
111
/* To clear multiple BSS sections,
112
+ * uncomment .zero.table section and,
128
113
* define __STARTUP_CLEAR_BSS_MULTIPLE in startup_cmsdk_musca_ns.S */
129
114
.zero.table :
130
115
{
131
- . = ALIGN (8 );
116
+ . = ALIGN (4 );
132
117
__zero_table_start__ = .;
133
118
LONG (__bss_start__ )
134
119
LONG (__bss_end__ - __bss_start__ )
135
120
LONG (DEFINED(__bss2_start__ ) ? __bss2_start__ : 0)
136
121
LONG (DEFINED(__bss2_start__ ) ? __bss2_end__ - __bss2_start__ : 0)
137
122
__zero_table_end__ = .;
138
- } > CODE_RAM
123
+ } > FLASH
139
124
140
125
__etext = .;
141
126
142
- .data : ALIGN (8 )
127
+ .data : AT (__etext )
143
128
{
144
129
__data_start__ = .;
145
130
*(vtable)
146
131
*(.data*)
147
132
148
- . = ALIGN (8 );
133
+ . = ALIGN (4 );
149
134
/* preinit data */
150
135
PROVIDE_HIDDEN (__preinit_array_start = .);
151
136
KEEP(*(.preinit_array))
152
137
PROVIDE_HIDDEN (__preinit_array_end = .);
153
138
154
- . = ALIGN (8 );
139
+ . = ALIGN (4 );
155
140
/* init data */
156
141
PROVIDE_HIDDEN (__init_array_start = .);
157
142
KEEP(*(SORT(.init_array.*)))
158
143
KEEP(*(.init_array))
159
144
PROVIDE_HIDDEN (__init_array_end = .);
160
145
161
146
162
- . = ALIGN (8 );
147
+ . = ALIGN (4 );
163
148
/* finit data */
164
149
PROVIDE_HIDDEN (__fini_array_start = .);
165
150
KEEP(*(SORT(.fini_array.*)))
166
151
KEEP(*(.fini_array))
167
152
PROVIDE_HIDDEN (__fini_array_end = .);
168
153
169
154
KEEP(*(.jcr*))
170
- . = ALIGN (8 );
155
+ . = ALIGN (4 );
171
156
/* All data end */
172
157
__data_end__ = .;
173
158
174
- } > RAM AT>CODE_RAM
159
+ } > RAM
175
160
176
161
.bss :
177
162
{
178
- . = ALIGN (8 );
163
+ . = ALIGN (4 );
179
164
__bss_start__ = .;
180
165
*(.bss*)
181
166
*(COMMON)
182
- . = ALIGN (8 );
167
+ . = ALIGN (4 );
183
168
__bss_end__ = .;
184
169
} > RAM
185
170
0 commit comments