mirror of https://github.com/ARMmbed/mbed-os.git
[Realtek] Support boot stack size configuration option
parent
36ff05345e
commit
3525f6b393
|
@ -1,3 +1,4 @@
|
||||||
|
#! armcc -E
|
||||||
; Realtek Semiconductor Corp.
|
; Realtek Semiconductor Corp.
|
||||||
;
|
;
|
||||||
; RTL8195A ARMCC Scatter File
|
; RTL8195A ARMCC Scatter File
|
||||||
|
@ -10,6 +11,12 @@
|
||||||
; DRAM (rwx) : ORIGIN = 0x30000000, LENGTH = 2M
|
; DRAM (rwx) : ORIGIN = 0x30000000, LENGTH = 2M
|
||||||
; }
|
; }
|
||||||
|
|
||||||
|
#if !defined(MBED_BOOT_STACK_SIZE)
|
||||||
|
#define MBED_BOOT_STACK_SIZE 0x400
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define Stack_Size MBED_BOOT_STACK_SIZE
|
||||||
|
|
||||||
LR_IRAM 0x10007000 (0x70000 - 0x7000) {
|
LR_IRAM 0x10007000 (0x70000 - 0x7000) {
|
||||||
|
|
||||||
IMAGE2_TABLE 0x10007000 FIXED {
|
IMAGE2_TABLE 0x10007000 FIXED {
|
||||||
|
@ -43,7 +50,7 @@ LR_IRAM 0x10007000 (0x70000 - 0x7000) {
|
||||||
*mbed_boot*.o (+ZI)
|
*mbed_boot*.o (+ZI)
|
||||||
}
|
}
|
||||||
|
|
||||||
ARM_LIB_STACK (0x10070000 - 0x1000) EMPTY 0x1000 {
|
ARM_LIB_STACK (0x10070000) EMPTY -Stack_Size {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,8 +25,12 @@ MEMORY
|
||||||
SRAM2 (rwx) : ORIGIN = 0x30000000, LENGTH = 2M
|
SRAM2 (rwx) : ORIGIN = 0x30000000, LENGTH = 2M
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !defined(MBED_BOOT_STACK_SIZE)
|
||||||
|
#define MBED_BOOT_STACK_SIZE 0x400
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Stack sizes: */
|
/* Stack sizes: */
|
||||||
StackSize = 0x1000;
|
StackSize = MBED_BOOT_STACK_SIZE;
|
||||||
|
|
||||||
/* Linker script to place sections and symbol values. Should be used together
|
/* Linker script to place sections and symbol values. Should be used together
|
||||||
* with other linker script that defines memory regions FLASH and RAM.
|
* with other linker script that defines memory regions FLASH and RAM.
|
||||||
|
@ -221,7 +225,7 @@ SECTIONS
|
||||||
/* Set stack top to end of RAM, and stack limit move down by
|
/* Set stack top to end of RAM, and stack limit move down by
|
||||||
* size of stack_dummy section */
|
* size of stack_dummy section */
|
||||||
__StackTop = ORIGIN(SRAM1) + LENGTH(SRAM1);
|
__StackTop = ORIGIN(SRAM1) + LENGTH(SRAM1);
|
||||||
__StackLimit = __StackTop - SIZEOF(.stack_dummy);
|
__StackLimit = __StackTop - StackSize;
|
||||||
PROVIDE(__stack = __StackTop);
|
PROVIDE(__stack = __StackTop);
|
||||||
|
|
||||||
/* Check if data + heap + stack exceeds RAM limit */
|
/* Check if data + heap + stack exceeds RAM limit */
|
||||||
|
|
|
@ -29,7 +29,11 @@ define region TCM_region = mem:[from __DTCM_start__ to __DTCM_end__];
|
||||||
define region RAM_region = mem:[from __SRAM_start__ to __SRAM_end__] |
|
define region RAM_region = mem:[from __SRAM_start__ to __SRAM_end__] |
|
||||||
mem:[from __DRAM_start__ to __DRAM_end__];
|
mem:[from __DRAM_start__ to __DRAM_end__];
|
||||||
|
|
||||||
define block CSTACK with alignment = 8, size = 0x1000 { };
|
if (!isdefinedsymbol(MBED_BOOT_STACK_SIZE)) {
|
||||||
|
define symbol MBED_BOOT_STACK_SIZE = 0x400;
|
||||||
|
}
|
||||||
|
|
||||||
|
define block CSTACK with alignment = 8, size = MBED_BOOT_STACK_SIZE { };
|
||||||
define block HEAP with alignment = 8, size = 0x19000 { };
|
define block HEAP with alignment = 8, size = 0x19000 { };
|
||||||
|
|
||||||
do not initialize { section .noinit };
|
do not initialize { section .noinit };
|
||||||
|
|
|
@ -23,21 +23,10 @@
|
||||||
|
|
||||||
#if defined(__CC_ARM) || (defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050))
|
#if defined(__CC_ARM) || (defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050))
|
||||||
extern uint32_t Image$$ARM_LIB_STACK$$ZI$$Base[];
|
extern uint32_t Image$$ARM_LIB_STACK$$ZI$$Base[];
|
||||||
extern uint32_t Image$$ARM_LIB_STACK$$ZI$$Length[];
|
#define INITIAL_SP ((uint32_t)(Image$$ARM_LIB_STACK$$ZI$$Base))
|
||||||
#define ISR_STACK_START (unsigned char *)(Image$$ARM_LIB_STACK$$ZI$$Base)
|
|
||||||
#define ISR_STACK_SIZE (uint32_t)(Image$$ARM_LIB_STACK$$ZI$$Length)
|
|
||||||
#define INITIAL_SP (uint32_t)(Image$$ARM_LIB_STACK$$ZI$$Base)
|
|
||||||
#elif defined(__GNUC__)
|
#elif defined(__GNUC__)
|
||||||
extern uint32_t __StackTop[];
|
extern uint32_t __StackTop;
|
||||||
extern uint32_t __StackLimit[];
|
#define INITIAL_SP ((uint32_t)(&__StackTop))
|
||||||
extern uint32_t __HeapLimit[];
|
|
||||||
#define INITIAL_SP (__StackTop)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__GNUC__)
|
|
||||||
#ifndef ISR_STACK_SIZE
|
|
||||||
#define ISR_STACK_SIZE (0x1000)
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue