File tree Expand file tree Collapse file tree 3 files changed +30
-15
lines changed
targets/TARGET_STM/TARGET_STM32L4
TARGET_STM32L475xG/device/TOOLCHAIN_GCC_ARM
TARGET_STM32L476xG/device/TOOLCHAIN_GCC_ARM
TARGET_STM32L486xG/device/TOOLCHAIN_GCC_ARM Expand file tree Collapse file tree 3 files changed +30
-15
lines changed Original file line number Diff line number Diff line change @@ -139,24 +139,29 @@ SECTIONS
139
139
__end__ = .;
140
140
end = __end__;
141
141
*(.heap*)
142
+ . += (ORIGIN (SRAM1) + LENGTH (SRAM1) - .);
142
143
__HeapLimit = .;
143
144
} > SRAM1
144
-
145
+ PROVIDE (__heap_size = SIZEOF (.heap));
146
+ PROVIDE (__mbed_sbrk_start = ADDR (.heap));
147
+ PROVIDE (__mbed_krbs_start = ADDR (.heap) + SIZEOF (.heap));
148
+ /* Check if data + heap exceeds RAM1 limit */
149
+ ASSERT ((ORIGIN (SRAM1)+LENGTH (SRAM1)) >= __HeapLimit, "SRAM1 overflow")
145
150
/* .stack_dummy section doesn't contains any symbols. It is only
146
151
* used for linker to calculate size of stack sections, and assign
147
152
* values to stack symbols later */
148
153
.stack_dummy (COPY) :
149
154
{
150
155
*(.stack*)
151
- } > SRAM1
156
+ } > SRAM2
152
157
153
158
/* Set stack top to end of RAM, and stack limit move down by
154
159
* size of stack_dummy section */
155
- __StackTop = ORIGIN (SRAM1 ) + LENGTH (SRAM1 );
160
+ __StackTop = ORIGIN (SRAM2 ) + LENGTH (SRAM2 );
156
161
_estack = __StackTop;
157
162
__StackLimit = __StackTop - SIZEOF (.stack_dummy);
158
163
PROVIDE (__stack = __StackTop);
164
+ /* Check if stack exceeds RAM2 limit */
165
+ ASSERT ((ORIGIN (SRAM2)+LENGTH (SRAM2)) >= __StackLimit, "SRAM2 overflow")
159
166
160
- /* Check if data + heap + stack exceeds RAM limit */
161
- ASSERT (__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
162
167
}
Original file line number Diff line number Diff line change @@ -139,24 +139,29 @@ SECTIONS
139
139
__end__ = .;
140
140
end = __end__;
141
141
*(.heap*)
142
+ . += (ORIGIN (SRAM1) + LENGTH (SRAM1) - .);
142
143
__HeapLimit = .;
143
144
} > SRAM1
144
-
145
+ PROVIDE (__heap_size = SIZEOF (.heap));
146
+ PROVIDE (__mbed_sbrk_start = ADDR (.heap));
147
+ PROVIDE (__mbed_krbs_start = ADDR (.heap) + SIZEOF (.heap));
148
+ /* Check if data + heap exceeds RAM1 limit */
149
+ ASSERT ((ORIGIN (SRAM1)+LENGTH (SRAM1)) >= __HeapLimit, "SRAM1 overflow")
145
150
/* .stack_dummy section doesn't contains any symbols. It is only
146
151
* used for linker to calculate size of stack sections, and assign
147
152
* values to stack symbols later */
148
153
.stack_dummy (COPY) :
149
154
{
150
155
*(.stack*)
151
- } > SRAM1
156
+ } > SRAM2
152
157
153
158
/* Set stack top to end of RAM, and stack limit move down by
154
159
* size of stack_dummy section */
155
- __StackTop = ORIGIN (SRAM1 ) + LENGTH (SRAM1 );
160
+ __StackTop = ORIGIN (SRAM2 ) + LENGTH (SRAM2 );
156
161
_estack = __StackTop;
157
162
__StackLimit = __StackTop - SIZEOF (.stack_dummy);
158
163
PROVIDE (__stack = __StackTop);
164
+ /* Check if stack exceeds RAM2 limit */
165
+ ASSERT ((ORIGIN (SRAM2)+LENGTH (SRAM2)) >= __StackLimit, "SRAM2 overflow")
159
166
160
- /* Check if data + heap + stack exceeds RAM limit */
161
- ASSERT (__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
162
167
}
Original file line number Diff line number Diff line change @@ -131,24 +131,29 @@ SECTIONS
131
131
__end__ = .;
132
132
end = __end__;
133
133
*(.heap*)
134
+ . += (ORIGIN (SRAM1) + LENGTH (SRAM1) - .);
134
135
__HeapLimit = .;
135
136
} > SRAM1
136
-
137
+ PROVIDE (__heap_size = SIZEOF (.heap));
138
+ PROVIDE (__mbed_sbrk_start = ADDR (.heap));
139
+ PROVIDE (__mbed_krbs_start = ADDR (.heap) + SIZEOF (.heap));
140
+ /* Check if data + heap exceeds RAM1 limit */
141
+ ASSERT ((ORIGIN (SRAM1)+LENGTH (SRAM1)) >= __HeapLimit, "SRAM1 overflow")
137
142
/* .stack_dummy section doesn't contains any symbols. It is only
138
143
* used for linker to calculate size of stack sections, and assign
139
144
* values to stack symbols later */
140
145
.stack_dummy (COPY) :
141
146
{
142
147
*(.stack*)
143
- } > SRAM1
148
+ } > SRAM2
144
149
145
150
/* Set stack top to end of RAM, and stack limit move down by
146
151
* size of stack_dummy section */
147
- __StackTop = ORIGIN (SRAM1 ) + LENGTH (SRAM1 );
152
+ __StackTop = ORIGIN (SRAM2 ) + LENGTH (SRAM2 );
148
153
_estack = __StackTop;
149
154
__StackLimit = __StackTop - SIZEOF (.stack_dummy);
150
155
PROVIDE (__stack = __StackTop);
156
+ /* Check if stack exceeds RAM2 limit */
157
+ ASSERT ((ORIGIN (SRAM2)+LENGTH (SRAM2)) >= __StackLimit, "SRAM2 overflow")
151
158
152
- /* Check if data + heap + stack exceeds RAM limit */
153
- ASSERT (__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
154
159
}
You can’t perform that action at this time.
0 commit comments