瀏覽代碼

[BSP] Fix the compiling issue with GCC6

Bernard Xiong 6 年之前
父節點
當前提交
fcab0f2cb4

+ 5 - 10
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

+ 8 - 3
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 = .;
 

+ 5 - 10
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

+ 8 - 3
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 = .;
 

+ 7 - 13
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

+ 8 - 3
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 = .;