[ARM_FM] Support boot stack size configuration option

pull/9092/head
Przemyslaw Stekiel 2018-12-17 14:26:59 +01:00
parent 01ca8443a8
commit 55b1c664bc
14 changed files with 69 additions and 18 deletions

View File

@ -31,6 +31,10 @@
#include "../memory_zones.h" #include "../memory_zones.h"
#include "../cmsis_nvic.h" #include "../cmsis_nvic.h"
#if !defined(MBED_BOOT_STACK_SIZE)
#define MBED_BOOT_STACK_SIZE 0x400
#endif
MEMORY MEMORY
{ {
VECTORS (rx) : ORIGIN = MAPPABLE_START, LENGTH = MAPPABLE_SIZE VECTORS (rx) : ORIGIN = MAPPABLE_START, LENGTH = MAPPABLE_SIZE
@ -66,7 +70,7 @@ MEMORY
*/ */
ENTRY(Reset_Handler) ENTRY(Reset_Handler)
STACK_SIZE = 0x400; STACK_SIZE = MBED_BOOT_STACK_SIZE;
/* Size of the vector table in SRAM */ /* Size of the vector table in SRAM */
M_VECTOR_RAM_SIZE = NVIC_VECTORS_SIZE; M_VECTOR_RAM_SIZE = NVIC_VECTORS_SIZE;

View File

@ -48,8 +48,11 @@ define symbol __ICFEDIT_region_RAM_end__ = ZBT_SRAM2_START + ZBT_SRAM2_SIZE
/*-Sizes-*/ /*-Sizes-*/
/* Heap and Stack size */ /* Heap and Stack size */
if (!isdefinedsymbol(MBED_BOOT_STACK_SIZE)) {
define symbol MBED_BOOT_STACK_SIZE = 0x400;
}
define symbol __ICFEDIT_size_heap__ = 0x200000; define symbol __ICFEDIT_size_heap__ = 0x200000;
define symbol __ICFEDIT_size_cstack__ = 0x400; define symbol __ICFEDIT_size_cstack__ = MBED_BOOT_STACK_SIZE;
/**** End of ICF editor section. ###ICF###*/ /**** End of ICF editor section. ###ICF###*/
define memory mem with size = 4G; define memory mem with size = 4G;

View File

@ -37,10 +37,14 @@
#include "../memory_zones.h" #include "../memory_zones.h"
#include "../cmsis_nvic.h" #include "../cmsis_nvic.h"
#if !defined(MBED_BOOT_STACK_SIZE)
#define MBED_BOOT_STACK_SIZE 0x400
#endif
#if (defined(__stack_size__)) #if (defined(__stack_size__))
#define STACK_SIZE __stack_size__ #define STACK_SIZE __stack_size__
#else #else
#define STACK_SIZE 0x0400 #define STACK_SIZE MBED_BOOT_STACK_SIZE
#endif #endif
; The vector table is loaded at address 0x00000000 in Flash memory region. ; The vector table is loaded at address 0x00000000 in Flash memory region.
@ -56,7 +60,7 @@ LR_IROM2 ZBT_SRAM1_START ZBT_SRAM1_SIZE { ; load region size_region
.ANY (+RO) .ANY (+RO)
} }
; NVIC_VECTORS_SIZE Total: 64 vectors = 256 bytes (0x100) to be reserved in RAM ; NVIC_VECTORS_SIZE Total: 64 vectors = 256 bytes (0x100) to be reserved in RAM
RW_IRAM1 (ZBT_SRAM2_START + NVIC_VECTORS_SIZE) (ZBT_SRAM2_SIZE - NVIC_VECTORS_SIZE) { ; RW data RW_IRAM1 (ZBT_SRAM2_START + NVIC_VECTORS_SIZE) (ZBT_SRAM2_SIZE - NVIC_VECTORS_SIZE - STACK_SIZE) { ; RW data
.ANY (+RW +ZI) .ANY (+RW +ZI)
} }
ARM_LIB_STACK (ZBT_SRAM2_START + ZBT_SRAM2_SIZE) EMPTY - STACK_SIZE { ; Stack region growing down ARM_LIB_STACK (ZBT_SRAM2_START + ZBT_SRAM2_SIZE) EMPTY - STACK_SIZE { ; Stack region growing down

View File

@ -66,7 +66,11 @@ MEMORY
*/ */
ENTRY(Reset_Handler) ENTRY(Reset_Handler)
STACK_SIZE = 0x400; #if !defined(MBED_BOOT_STACK_SIZE)
#define MBED_BOOT_STACK_SIZE 0x400
#endif
STACK_SIZE = MBED_BOOT_STACK_SIZE;
/* Size of the vector table in SRAM */ /* Size of the vector table in SRAM */
M_VECTOR_RAM_SIZE = NVIC_VECTORS_SIZE; M_VECTOR_RAM_SIZE = NVIC_VECTORS_SIZE;

View File

@ -48,8 +48,11 @@ define symbol __ICFEDIT_region_RAM_end__ = ZBT_SRAM2_START + ZBT_SRAM2_SIZE
/*-Sizes-*/ /*-Sizes-*/
/* Heap and Stack size */ /* Heap and Stack size */
if (!isdefinedsymbol(MBED_BOOT_STACK_SIZE)) {
define symbol MBED_BOOT_STACK_SIZE = 0x400;
}
define symbol __ICFEDIT_size_heap__ = 0x200000; define symbol __ICFEDIT_size_heap__ = 0x200000;
define symbol __ICFEDIT_size_cstack__ = 0x400; define symbol __ICFEDIT_size_cstack__ = MBED_BOOT_STACK_SIZE;
/**** End of ICF editor section. ###ICF###*/ /**** End of ICF editor section. ###ICF###*/
define memory mem with size = 4G; define memory mem with size = 4G;

View File

@ -37,10 +37,14 @@
#include "../memory_zones.h" #include "../memory_zones.h"
#include "../cmsis_nvic.h" #include "../cmsis_nvic.h"
#if !defined(MBED_BOOT_STACK_SIZE)
#define MBED_BOOT_STACK_SIZE 0x400
#endif
#if (defined(__stack_size__)) #if (defined(__stack_size__))
#define STACK_SIZE __stack_size__ #define STACK_SIZE __stack_size__
#else #else
#define STACK_SIZE 0x0400 #define STACK_SIZE MBED_BOOT_STACK_SIZE
#endif #endif
; The vector table is loaded at address 0x00000000 in Flash memory region. ; The vector table is loaded at address 0x00000000 in Flash memory region.
@ -56,7 +60,7 @@ LR_IROM2 ZBT_SRAM1_START ZBT_SRAM1_SIZE { ; load region size_region
.ANY (+RO) .ANY (+RO)
} }
; NVIC_VECTORS_SIZE Total: 64 vectors = 256 bytes (0x100) to be reserved in RAM ; NVIC_VECTORS_SIZE Total: 64 vectors = 256 bytes (0x100) to be reserved in RAM
RW_IRAM1 (ZBT_SRAM2_START + NVIC_VECTORS_SIZE) (ZBT_SRAM2_SIZE - NVIC_VECTORS_SIZE) { ; RW data RW_IRAM1 (ZBT_SRAM2_START + NVIC_VECTORS_SIZE) (ZBT_SRAM2_SIZE - NVIC_VECTORS_SIZE - STACK_SIZE) { ; RW data
.ANY (+RW +ZI) .ANY (+RW +ZI)
} }
ARM_LIB_STACK (ZBT_SRAM2_START + ZBT_SRAM2_SIZE) EMPTY - STACK_SIZE { ; Stack region growing down ARM_LIB_STACK (ZBT_SRAM2_START + ZBT_SRAM2_SIZE) EMPTY - STACK_SIZE { ; Stack region growing down

View File

@ -66,7 +66,11 @@ MEMORY
*/ */
ENTRY(Reset_Handler) ENTRY(Reset_Handler)
STACK_SIZE = 0x400; #if !defined(MBED_BOOT_STACK_SIZE)
#define MBED_BOOT_STACK_SIZE 0x400
#endif
STACK_SIZE = MBED_BOOT_STACK_SIZE;
/* Size of the vector table in SRAM */ /* Size of the vector table in SRAM */
M_VECTOR_RAM_SIZE = NVIC_VECTORS_SIZE; M_VECTOR_RAM_SIZE = NVIC_VECTORS_SIZE;

View File

@ -48,8 +48,11 @@ define symbol __ICFEDIT_region_RAM_end__ = ZBT_SRAM2_START + ZBT_SRAM2_SIZE
/*-Sizes-*/ /*-Sizes-*/
/* Heap and Stack size */ /* Heap and Stack size */
if (!isdefinedsymbol(MBED_BOOT_STACK_SIZE)) {
define symbol MBED_BOOT_STACK_SIZE = 0x400;
}
define symbol __ICFEDIT_size_heap__ = 0x200000; define symbol __ICFEDIT_size_heap__ = 0x200000;
define symbol __ICFEDIT_size_cstack__ = 0x400; define symbol __ICFEDIT_size_cstack__ = MBED_BOOT_STACK_SIZE;
/**** End of ICF editor section. ###ICF###*/ /**** End of ICF editor section. ###ICF###*/
define memory mem with size = 4G; define memory mem with size = 4G;

View File

@ -37,10 +37,14 @@
#include "../memory_zones.h" #include "../memory_zones.h"
#include "../cmsis_nvic.h" #include "../cmsis_nvic.h"
#if !defined(MBED_BOOT_STACK_SIZE)
#define MBED_BOOT_STACK_SIZE 0x400
#endif
#if (defined(__stack_size__)) #if (defined(__stack_size__))
#define STACK_SIZE __stack_size__ #define STACK_SIZE __stack_size__
#else #else
#define STACK_SIZE 0x0400 #define STACK_SIZE MBED_BOOT_STACK_SIZE
#endif #endif
; The vector table is loaded at address 0x00000000 in Flash memory region. ; The vector table is loaded at address 0x00000000 in Flash memory region.
@ -56,7 +60,7 @@ LR_IROM2 ZBT_SRAM1_START ZBT_SRAM1_SIZE { ; load region size_region
.ANY (+RO) .ANY (+RO)
} }
; NVIC_VECTORS_SIZE Total: 64 vectors = 256 bytes (0x100) to be reserved in RAM ; NVIC_VECTORS_SIZE Total: 64 vectors = 256 bytes (0x100) to be reserved in RAM
RW_IRAM1 (ZBT_SRAM2_START + NVIC_VECTORS_SIZE) (ZBT_SRAM2_SIZE - NVIC_VECTORS_SIZE) { ; RW data RW_IRAM1 (ZBT_SRAM2_START + NVIC_VECTORS_SIZE) (ZBT_SRAM2_SIZE - NVIC_VECTORS_SIZE - STACK_SIZE) { ; RW data
.ANY (+RW +ZI) .ANY (+RW +ZI)
} }
ARM_LIB_STACK (ZBT_SRAM2_START + ZBT_SRAM2_SIZE) EMPTY - STACK_SIZE { ; Stack region growing down ARM_LIB_STACK (ZBT_SRAM2_START + ZBT_SRAM2_SIZE) EMPTY - STACK_SIZE { ; Stack region growing down

View File

@ -31,6 +31,10 @@
#include "../memory_zones.h" #include "../memory_zones.h"
#include "../cmsis_nvic.h" #include "../cmsis_nvic.h"
#if !defined(MBED_BOOT_STACK_SIZE)
#define MBED_BOOT_STACK_SIZE 0x400
#endif
MEMORY MEMORY
{ {
VECTORS (rx) : ORIGIN = MAPPABLE_START, LENGTH = MAPPABLE_SIZE VECTORS (rx) : ORIGIN = MAPPABLE_START, LENGTH = MAPPABLE_SIZE
@ -66,7 +70,7 @@ MEMORY
*/ */
ENTRY(Reset_Handler) ENTRY(Reset_Handler)
STACK_SIZE = 0x400; STACK_SIZE = MBED_BOOT_STACK_SIZE;
/* Size of the vector table in SRAM */ /* Size of the vector table in SRAM */
M_VECTOR_RAM_SIZE = NVIC_VECTORS_SIZE; M_VECTOR_RAM_SIZE = NVIC_VECTORS_SIZE;

View File

@ -48,8 +48,11 @@ define symbol __ICFEDIT_region_RAM_end__ = ZBT_SRAM2_START + ZBT_SRAM2_SIZE
/*-Sizes-*/ /*-Sizes-*/
/* Heap and Stack size */ /* Heap and Stack size */
if (!isdefinedsymbol(MBED_BOOT_STACK_SIZE)) {
define symbol MBED_BOOT_STACK_SIZE = 0x400;
}
define symbol __ICFEDIT_size_heap__ = 0x200000; define symbol __ICFEDIT_size_heap__ = 0x200000;
define symbol __ICFEDIT_size_cstack__ = 0x400; define symbol __ICFEDIT_size_cstack__ = MBED_BOOT_STACK_SIZE;
/**** End of ICF editor section. ###ICF###*/ /**** End of ICF editor section. ###ICF###*/
define memory mem with size = 4G; define memory mem with size = 4G;

View File

@ -37,10 +37,14 @@
#include "../memory_zones.h" #include "../memory_zones.h"
#include "../cmsis_nvic.h" #include "../cmsis_nvic.h"
#if !defined(MBED_BOOT_STACK_SIZE)
#define MBED_BOOT_STACK_SIZE 0x400
#endif
#if (defined(__stack_size__)) #if (defined(__stack_size__))
#define STACK_SIZE __stack_size__ #define STACK_SIZE __stack_size__
#else #else
#define STACK_SIZE 0x0400 #define STACK_SIZE MBED_BOOT_STACK_SIZE
#endif #endif
; The vector table is loaded at address 0x00000000 in Flash memory region. ; The vector table is loaded at address 0x00000000 in Flash memory region.
@ -56,7 +60,7 @@ LR_IROM2 ZBT_SRAM1_START ZBT_SRAM1_SIZE { ; load region size_region
.ANY (+RO) .ANY (+RO)
} }
; NVIC_VECTORS_SIZE Total: 64 vectors = 256 bytes (0x100) to be reserved in RAM ; NVIC_VECTORS_SIZE Total: 64 vectors = 256 bytes (0x100) to be reserved in RAM
RW_IRAM1 (ZBT_SRAM2_START + NVIC_VECTORS_SIZE) (ZBT_SRAM2_SIZE - NVIC_VECTORS_SIZE) { ; RW data RW_IRAM1 (ZBT_SRAM2_START + NVIC_VECTORS_SIZE) (ZBT_SRAM2_SIZE - NVIC_VECTORS_SIZE - STACK_SIZE) { ; RW data
.ANY (+RW +ZI) .ANY (+RW +ZI)
} }
ARM_LIB_STACK (ZBT_SRAM2_START + ZBT_SRAM2_SIZE) EMPTY - STACK_SIZE { ; Stack region growing down ARM_LIB_STACK (ZBT_SRAM2_START + ZBT_SRAM2_SIZE) EMPTY - STACK_SIZE { ; Stack region growing down

View File

@ -66,7 +66,11 @@ MEMORY
*/ */
ENTRY(Reset_Handler) ENTRY(Reset_Handler)
STACK_SIZE = 0x400; #if !defined(MBED_BOOT_STACK_SIZE)
#define MBED_BOOT_STACK_SIZE 0x400
#endif
STACK_SIZE = MBED_BOOT_STACK_SIZE;
/* Size of the vector table in SRAM */ /* Size of the vector table in SRAM */
M_VECTOR_RAM_SIZE = NVIC_VECTORS_SIZE; M_VECTOR_RAM_SIZE = NVIC_VECTORS_SIZE;

View File

@ -48,8 +48,11 @@ define symbol __ICFEDIT_region_RAM_end__ = ZBT_SRAM2_START + ZBT_SRAM2_SIZE
/*-Sizes-*/ /*-Sizes-*/
/* Heap and Stack size */ /* Heap and Stack size */
if (!isdefinedsymbol(MBED_BOOT_STACK_SIZE)) {
define symbol MBED_BOOT_STACK_SIZE = 0x400;
}
define symbol __ICFEDIT_size_heap__ = 0x200000; define symbol __ICFEDIT_size_heap__ = 0x200000;
define symbol __ICFEDIT_size_cstack__ = 0x400; define symbol __ICFEDIT_size_cstack__ = MBED_BOOT_STACK_SIZE;
/**** End of ICF editor section. ###ICF###*/ /**** End of ICF editor section. ###ICF###*/
define memory mem with size = 4G; define memory mem with size = 4G;