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,38 +46,17 @@ 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
-
62
- .ARM.extab :
63
- {
64
- *(.ARM.extab* .gnu.linkonce.armextab.*)
65
- } > CODE_RAM
66
-
67
- __exidx_start = .;
68
- .ARM.exidx :
69
- {
70
- *(.ARM.exidx* .gnu.linkonce.armexidx.*)
71
- } > CODE_RAM
72
- __exidx_end = .;
73
-
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
-
81
60
/* .ctors */
82
61
*crtbegin.o (.ctors)
83
62
*crtbegin?.o (.ctors)
@@ -95,25 +74,26 @@ SECTIONS
95
74
*(.rodata*)
96
75
97
76
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;
77
+ } > FLASH
78
+
79
+ .ARM.extab :
80
+ {
81
+ *(.ARM.extab* .gnu.linkonce.armextab.*)
82
+ } > FLASH
83
+
84
+ __exidx_start = .;
85
+ .ARM.exidx :
86
+ {
87
+ *(.ARM.exidx* .gnu.linkonce.armexidx.*)
88
+ } > FLASH
89
+ __exidx_end = .;
110
90
111
91
/* To copy multiple ROM to RAM sections,
112
92
* define etext2/data2_start/data2_end and
113
93
* define __STARTUP_COPY_MULTIPLE in startup_cmsdk_musca_ns.S */
114
94
.copy.table :
115
95
{
116
- . = ALIGN (8 );
96
+ . = ALIGN (4 );
117
97
__copy_table_start__ = .;
118
98
LONG (__etext )
119
99
LONG (__data_start__ )
@@ -122,64 +102,65 @@ SECTIONS
122
102
LONG (DEFINED(__data2_start__ ) ? __data2_start__ : 0)
123
103
LONG (DEFINED(__data2_start__ ) ? __data2_end__ - __data2_start__ : 0)
124
104
__copy_table_end__ = .;
125
- } > CODE_RAM
105
+ } > FLASH
126
106
127
107
/* To clear multiple BSS sections,
108
+ * uncomment .zero.table section and,
128
109
* define __STARTUP_CLEAR_BSS_MULTIPLE in startup_cmsdk_musca_ns.S */
129
110
.zero.table :
130
111
{
131
- . = ALIGN (8 );
112
+ . = ALIGN (4 );
132
113
__zero_table_start__ = .;
133
114
LONG (__bss_start__ )
134
115
LONG (__bss_end__ - __bss_start__ )
135
116
LONG (DEFINED(__bss2_start__ ) ? __bss2_start__ : 0)
136
117
LONG (DEFINED(__bss2_start__ ) ? __bss2_end__ - __bss2_start__ : 0)
137
118
__zero_table_end__ = .;
138
- } > CODE_RAM
119
+ } > FLASH
139
120
140
121
__etext = .;
141
122
142
- .data : ALIGN (8 )
123
+ .data : AT (__etext )
143
124
{
144
125
__data_start__ = .;
145
126
*(vtable)
146
127
*(.data*)
147
128
148
- . = ALIGN (8 );
129
+ . = ALIGN (4 );
149
130
/* preinit data */
150
131
PROVIDE_HIDDEN (__preinit_array_start = .);
151
132
KEEP(*(.preinit_array))
152
133
PROVIDE_HIDDEN (__preinit_array_end = .);
153
134
154
- . = ALIGN (8 );
135
+ . = ALIGN (4 );
155
136
/* init data */
156
137
PROVIDE_HIDDEN (__init_array_start = .);
157
138
KEEP(*(SORT(.init_array.*)))
158
139
KEEP(*(.init_array))
159
140
PROVIDE_HIDDEN (__init_array_end = .);
160
141
161
142
162
- . = ALIGN (8 );
143
+ . = ALIGN (4 );
163
144
/* finit data */
164
145
PROVIDE_HIDDEN (__fini_array_start = .);
165
146
KEEP(*(SORT(.fini_array.*)))
166
147
KEEP(*(.fini_array))
167
148
PROVIDE_HIDDEN (__fini_array_end = .);
168
149
169
150
KEEP(*(.jcr*))
170
- . = ALIGN (8 );
151
+ . = ALIGN (4 );
171
152
/* All data end */
172
153
__data_end__ = .;
173
154
174
- } > RAM AT>CODE_RAM
155
+ } > RAM
175
156
176
157
.bss :
177
158
{
178
- . = ALIGN (8 );
159
+ . = ALIGN (4 );
179
160
__bss_start__ = .;
180
161
*(.bss*)
181
162
*(COMMON)
182
- . = ALIGN (8 );
163
+ . = ALIGN (4 );
183
164
__bss_end__ = .;
184
165
} > RAM
185
166
0 commit comments