[ublox] Support boot stack size configuration option

pull/9092/head
Przemyslaw Stekiel 2018-12-18 09:10:07 +01:00
parent f74f3c1fd0
commit 4a113d2e29
3 changed files with 24 additions and 3 deletions
targets/TARGET_ublox/TARGET_HI2110/device
TOOLCHAIN_ARM_STD
TOOLCHAIN_GCC_ARM
TOOLCHAIN_IAR

View File

@ -1,3 +1,11 @@
#! armcc -E
#if !defined(MBED_BOOT_STACK_SIZE)
#define MBED_BOOT_STACK_SIZE 0x400
#endif
#define Stack_Size MBED_BOOT_STACK_SIZE
LR_IROM1 0x00000000 0x20000 {
ER_IROM1 0x00000000 0x20000 {
*.o (RESET, +First)
@ -6,10 +14,12 @@ LR_IROM1 0x00000000 0x20000 {
}
RW_IRAM_VTABLE 0x01000000 EMPTY 128 {
}
RW_IRAM1 +0 (0x5000 - 256) {
RW_IRAM1 +0 (0x5000 - 256 - Stack_Size) {
.ANY (+RW +ZI)
}
RW_IPCRAM +0 256 {
ipc.o (+RW)
}
ARM_LIB_STACK (0x01000000+0x5000) EMPTY -Stack_Size { ; stack
}
}

View File

@ -4,6 +4,13 @@
OUTPUT_FORMAT("elf32-littlearm")
OUTPUT_ARCH(arm)
ENTRY(Reset_Handler)
#if !defined(MBED_BOOT_STACK_SIZE)
#define MBED_BOOT_STACK_SIZE 0x400
#endif
STACK_SIZE = MBED_BOOT_STACK_SIZE;
MEMORY
{
FLASH_VECTORS : ORIGIN = 0, LENGTH = 192
@ -151,7 +158,7 @@ SECTIONS
/* Set stack top to end of RAM, and stack limit move down by
* size of stack_dummy section */
__StackTop = ORIGIN(RAM) + LENGTH(RAM); /* Remember that LENGTH(RAM) is already reduced by the IPC block */
__StackLimit = __StackTop - SIZEOF(.stack_dummy);
__StackLimit = __StackTop - STACK_SIZE;
PROVIDE(__stack = __StackTop);
/* Check if data + heap + stack exceeds RAM limit */

View File

@ -8,10 +8,14 @@ define symbol __size_flash_vtable__ = 192;
define symbol __size_ram_vtable__ = 128; /* Reserve space for dynamic vectors mapped to RAM (see cmsis_nvic.c) */
define symbol __size_ipc__ = 256;
if (!isdefinedsymbol(MBED_BOOT_STACK_SIZE)) {
define symbol MBED_BOOT_STACK_SIZE = 0x400;
}
if (isdefinedsymbol(__stack_size__)) {
define symbol __size_cstack__ = __stack_size__;
} else {
define symbol __size_cstack__ = 1024;
define symbol __size_cstack__ = MBED_BOOT_STACK_SIZE;
}
if (isdefinedsymbol(__heap_size__)) {