summaryrefslogtreecommitdiff
path: root/bsp
diff options
context:
space:
mode:
Diffstat (limited to 'bsp')
-rw-r--r--bsp/lm3s8962/Libraries/startup/gcc/start_gcc.S15
-rw-r--r--bsp/lm3s8962/lm3s_rom.ld11
-rw-r--r--bsp/lm3s9b9x/Libraries/startup/gcc/start_gcc.S15
-rw-r--r--bsp/lm3s9b9x/lm3s_rom.ld11
-rw-r--r--bsp/mb9bf500r/CMSIS/start_gcc.S20
-rw-r--r--bsp/mb9bf500r/fm3_rom.ld11
6 files changed, 41 insertions, 42 deletions
diff --git a/bsp/lm3s8962/Libraries/startup/gcc/start_gcc.S b/bsp/lm3s8962/Libraries/startup/gcc/start_gcc.S
index 3a4abbe3c3..53d5471f5c 100644
--- a/bsp/lm3s8962/Libraries/startup/gcc/start_gcc.S
+++ b/bsp/lm3s8962/Libraries/startup/gcc/start_gcc.S
@@ -1,9 +1,4 @@
-.section .bss.init
-.equ Stack_Size, 0x00000200
-.space Stack_Size
-Initial_spTop:
-
- .syntax unified
+ .syntax unified
.cpu cortex-m3
.fpu softvfp
.thumb
@@ -32,13 +27,13 @@ defined in linker script */
* @retval : None
*/
- .section .text.Reset_Handler
+ .section .text.Reset_Handler
.weak Reset_Handler
.type Reset_Handler, %function
Reset_Handler:
/* restore original stack pointer */
- LDR r0, =Initial_spTop
- MSR msp, r0
+ ldr sp, =_estack /* set stack pointer */
+
/* Copy the data segment initializers from flash to SRAM */
movs r1, #0
b LoopCopyDataInit
@@ -98,7 +93,7 @@ Infinite_Loop:
g_pfnVectors:
- .word Initial_spTop
+ .word _estack
.word Reset_Handler
.word Default_Handler //NMI_Handler
.word HardFault_Handler
diff --git a/bsp/lm3s8962/lm3s_rom.ld b/bsp/lm3s8962/lm3s_rom.ld
index 5572ae4186..d4a2f968d0 100644
--- a/bsp/lm3s8962/lm3s_rom.ld
+++ b/bsp/lm3s8962/lm3s_rom.ld
@@ -10,6 +10,7 @@ MEMORY
DATA (rw) : ORIGIN = 0x20000000, LENGTH = 0x00010000
}
ENTRY(Reset_Handler)
+_system_stack_size = 0x200;
SECTIONS
{
@@ -72,6 +73,13 @@ SECTIONS
_edata = . ;
} >DATA
+ .stack :
+ {
+ . = . + _system_stack_size;
+ . = ALIGN(4);
+ _estack = .;
+ } >DATA
+
__bss_start = .;
.bss :
{
@@ -85,9 +93,6 @@ SECTIONS
. = ALIGN(4);
/* This is used by the startup in order to initialize the .bss secion */
_ebss = . ;
- _estack = .;
-
- *(.bss.init)
} > DATA
__bss_end = .;
diff --git a/bsp/lm3s9b9x/Libraries/startup/gcc/start_gcc.S b/bsp/lm3s9b9x/Libraries/startup/gcc/start_gcc.S
index 3a4abbe3c3..53d5471f5c 100644
--- a/bsp/lm3s9b9x/Libraries/startup/gcc/start_gcc.S
+++ b/bsp/lm3s9b9x/Libraries/startup/gcc/start_gcc.S
@@ -1,9 +1,4 @@
-.section .bss.init
-.equ Stack_Size, 0x00000200
-.space Stack_Size
-Initial_spTop:
-
- .syntax unified
+ .syntax unified
.cpu cortex-m3
.fpu softvfp
.thumb
@@ -32,13 +27,13 @@ defined in linker script */
* @retval : None
*/
- .section .text.Reset_Handler
+ .section .text.Reset_Handler
.weak Reset_Handler
.type Reset_Handler, %function
Reset_Handler:
/* restore original stack pointer */
- LDR r0, =Initial_spTop
- MSR msp, r0
+ ldr sp, =_estack /* set stack pointer */
+
/* Copy the data segment initializers from flash to SRAM */
movs r1, #0
b LoopCopyDataInit
@@ -98,7 +93,7 @@ Infinite_Loop:
g_pfnVectors:
- .word Initial_spTop
+ .word _estack
.word Reset_Handler
.word Default_Handler //NMI_Handler
.word HardFault_Handler
diff --git a/bsp/lm3s9b9x/lm3s_rom.ld b/bsp/lm3s9b9x/lm3s_rom.ld
index 5572ae4186..d4a2f968d0 100644
--- a/bsp/lm3s9b9x/lm3s_rom.ld
+++ b/bsp/lm3s9b9x/lm3s_rom.ld
@@ -10,6 +10,7 @@ MEMORY
DATA (rw) : ORIGIN = 0x20000000, LENGTH = 0x00010000
}
ENTRY(Reset_Handler)
+_system_stack_size = 0x200;
SECTIONS
{
@@ -72,6 +73,13 @@ SECTIONS
_edata = . ;
} >DATA
+ .stack :
+ {
+ . = . + _system_stack_size;
+ . = ALIGN(4);
+ _estack = .;
+ } >DATA
+
__bss_start = .;
.bss :
{
@@ -85,9 +93,6 @@ SECTIONS
. = ALIGN(4);
/* This is used by the startup in order to initialize the .bss secion */
_ebss = . ;
- _estack = .;
-
- *(.bss.init)
} > DATA
__bss_end = .;
diff --git a/bsp/mb9bf500r/CMSIS/start_gcc.S b/bsp/mb9bf500r/CMSIS/start_gcc.S
index 20a4e131f6..b1a93e52be 100644
--- a/bsp/mb9bf500r/CMSIS/start_gcc.S
+++ b/bsp/mb9bf500r/CMSIS/start_gcc.S
@@ -12,12 +12,7 @@
* 2011-07-01 lgnq first version
*/
-.section .bss.init
-.equ Stack_Size, 0x00000200
-.space Stack_Size
-Initial_spTop:
-
- .syntax unified
+ .syntax unified
.cpu cortex-m3
.fpu softvfp
.thumb
@@ -48,13 +43,13 @@ defined in linker script */
* @retval : None
*/
- .section .text.Reset_Handler
+ .section .text.Reset_Handler
.weak Reset_Handler
.type Reset_Handler, %function
Reset_Handler:
/* restore original stack pointer */
- LDR r0, =Initial_spTop
- MSR msp, r0
+ ldr sp, =_estack /* set stack pointer */
+
/* Copy the data segment initializers from flash to SRAM */
movs r1, #0
b LoopCopyDataInit
@@ -107,13 +102,12 @@ Infinite_Loop:
* 0x0000.0000.
*
******************************************************************************/
- .section .isr_vector,"a",%progbits
+ .section .isr_vector,"a",%progbits
.type g_pfnVectors, %object
.size g_pfnVectors, .-g_pfnVectors
-
-
+
g_pfnVectors:
- .word Initial_spTop
+ .word _estack
.word Reset_Handler
.word NMI_Handler
.word HardFault_Handler
diff --git a/bsp/mb9bf500r/fm3_rom.ld b/bsp/mb9bf500r/fm3_rom.ld
index 67f1a973b3..3d0151d23b 100644
--- a/bsp/mb9bf500r/fm3_rom.ld
+++ b/bsp/mb9bf500r/fm3_rom.ld
@@ -5,6 +5,7 @@ MEMORY
DATA (rw) : ORIGIN = 0x1FFFC000, LENGTH = 0x0000C000
}
ENTRY(Reset_Handler)
+_system_stack_size = 0x200;
SECTIONS
{
@@ -70,6 +71,13 @@ SECTIONS
_edata = . ;
} >DATA
+ .stack :
+ {
+ . = . + _system_stack_size;
+ . = ALIGN(4);
+ _estack = .;
+ } >DATA
+
__bss_start = .;
.bss :
{
@@ -84,9 +92,6 @@ SECTIONS
. = ALIGN(4);
/* This is used by the startup in order to initialize the .bss secion */
_ebss = . ;
- _estack = .;
-
- *(.bss.init)
} > DATA
__bss_end = .;