diff options
| author | Bernard Xiong <[email protected]> | 2017-08-18 11:30:28 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2017-08-18 11:30:28 +0800 |
| commit | 2331ebdc8efede7b3204dee1e222d04c1710c523 (patch) | |
| tree | 1aaf0db5be43af12023807c1485a49e73ec7ac05 | |
| parent | f975ef5146f4e12dd464b310b1cce3b8b0e9cbfb (diff) | |
| parent | 959b97aa34440e63addf461d1d7f25c661788389 (diff) | |
Merge pull request #811 from aozima/update_cortex-m_port
[libcpu] Update cortex m port
| -rw-r--r-- | bsp/stm32f20x/stm32_rom.icf | 4 | ||||
| -rw-r--r-- | libcpu/arm/cortex-m0/context_gcc.S | 4 | ||||
| -rw-r--r-- | libcpu/arm/cortex-m0/context_iar.S | 1 | ||||
| -rw-r--r-- | libcpu/arm/cortex-m0/context_rvds.S | 1 | ||||
| -rw-r--r-- | libcpu/arm/cortex-m3/context_gcc.S | 4 | ||||
| -rw-r--r-- | libcpu/arm/cortex-m3/context_iar.S | 4 | ||||
| -rw-r--r-- | libcpu/arm/cortex-m3/context_rvds.S | 1 | ||||
| -rw-r--r-- | libcpu/arm/cortex-m4/context_gcc.S | 4 | ||||
| -rw-r--r-- | libcpu/arm/cortex-m4/context_iar.S | 4 | ||||
| -rw-r--r-- | libcpu/arm/cortex-m4/context_rvds.S | 1 | ||||
| -rw-r--r-- | libcpu/arm/cortex-m7/context_gcc.S | 4 | ||||
| -rw-r--r-- | libcpu/arm/cortex-m7/context_iar.S | 4 | ||||
| -rw-r--r-- | libcpu/arm/cortex-m7/context_rvds.S | 1 |
13 files changed, 28 insertions, 9 deletions
diff --git a/bsp/stm32f20x/stm32_rom.icf b/bsp/stm32f20x/stm32_rom.icf index 293cd6ab01..95cc8d50cf 100644 --- a/bsp/stm32f20x/stm32_rom.icf +++ b/bsp/stm32f20x/stm32_rom.icf @@ -28,8 +28,8 @@ do not initialize { section .noinit }; keep { section FSymTab };
keep { section VSymTab };
+keep { section .rti_fn* };
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
place in ROM_region { readonly, block RTT_INIT_FUNC };
-place in RAM_region { readwrite,
- block CSTACK, block HEAP };
\ No newline at end of file +place in RAM_region { readwrite, block CSTACK, last block HEAP};
diff --git a/libcpu/arm/cortex-m0/context_gcc.S b/libcpu/arm/cortex-m0/context_gcc.S index 3186a5ae9f..c95582630a 100644 --- a/libcpu/arm/cortex-m0/context_gcc.S +++ b/libcpu/arm/cortex-m0/context_gcc.S @@ -181,7 +181,9 @@ rt_hw_context_switch_to: NOP MSR MSP, R0 - CPSIE I /* enable interrupts at processor level */ + /* enable interrupts at processor level */ + CPSIE F + CPSIE I /* never reach here! */ diff --git a/libcpu/arm/cortex-m0/context_iar.S b/libcpu/arm/cortex-m0/context_iar.S index 67ea808d8c..e7d680867a 100644 --- a/libcpu/arm/cortex-m0/context_iar.S +++ b/libcpu/arm/cortex-m0/context_iar.S @@ -188,6 +188,7 @@ rt_hw_context_switch_to: MSR msp, r0 ; enable interrupts at processor level + CPSIE F CPSIE I ; never reach here! diff --git a/libcpu/arm/cortex-m0/context_rvds.S b/libcpu/arm/cortex-m0/context_rvds.S index bf68592e63..5411162e56 100644 --- a/libcpu/arm/cortex-m0/context_rvds.S +++ b/libcpu/arm/cortex-m0/context_rvds.S @@ -191,6 +191,7 @@ rt_hw_context_switch_to PROC MSR msp, r0 ; enable interrupts at processor level + CPSIE F CPSIE I ; never reach here! diff --git a/libcpu/arm/cortex-m3/context_gcc.S b/libcpu/arm/cortex-m3/context_gcc.S index ca961bbd87..5181cb2712 100644 --- a/libcpu/arm/cortex-m3/context_gcc.S +++ b/libcpu/arm/cortex-m3/context_gcc.S @@ -162,7 +162,9 @@ rt_hw_context_switch_to: NOP MSR msp, r0 - CPSIE I /* enable interrupts at processor level */ + /* enable interrupts at processor level */ + CPSIE F + CPSIE I /* never reach here! */ diff --git a/libcpu/arm/cortex-m3/context_iar.S b/libcpu/arm/cortex-m3/context_iar.S index ad9fa0dd0f..95dee8062d 100644 --- a/libcpu/arm/cortex-m3/context_iar.S +++ b/libcpu/arm/cortex-m3/context_iar.S @@ -161,7 +161,9 @@ rt_hw_context_switch_to: NOP MSR msp, r0 - CPSIE I ; enable interrupts at processor level + ; enable interrupts at processor level + CPSIE F + CPSIE I ; never reach here! diff --git a/libcpu/arm/cortex-m3/context_rvds.S b/libcpu/arm/cortex-m3/context_rvds.S index ebfd5c8da8..a4191203be 100644 --- a/libcpu/arm/cortex-m3/context_rvds.S +++ b/libcpu/arm/cortex-m3/context_rvds.S @@ -168,6 +168,7 @@ rt_hw_context_switch_to PROC MSR msp, r0 ; enable interrupts at processor level + CPSIE F CPSIE I ; never reach here! diff --git a/libcpu/arm/cortex-m4/context_gcc.S b/libcpu/arm/cortex-m4/context_gcc.S index 908a44f847..af6c9934d4 100644 --- a/libcpu/arm/cortex-m4/context_gcc.S +++ b/libcpu/arm/cortex-m4/context_gcc.S @@ -203,7 +203,9 @@ rt_hw_context_switch_to: NOP MSR msp, r0 - CPSIE I /* enable interrupts at processor level */ + /* enable interrupts at processor level */ + CPSIE F + CPSIE I /* never reach here! */ diff --git a/libcpu/arm/cortex-m4/context_iar.S b/libcpu/arm/cortex-m4/context_iar.S index 8761a97052..4cc9539112 100644 --- a/libcpu/arm/cortex-m4/context_iar.S +++ b/libcpu/arm/cortex-m4/context_iar.S @@ -207,7 +207,9 @@ rt_hw_context_switch_to: NOP MSR msp, r0 - CPSIE I ; enable interrupts at processor level + ; enable interrupts at processor level + CPSIE F + CPSIE I ; never reach here! diff --git a/libcpu/arm/cortex-m4/context_rvds.S b/libcpu/arm/cortex-m4/context_rvds.S index fa7a1c90f8..ea894ed000 100644 --- a/libcpu/arm/cortex-m4/context_rvds.S +++ b/libcpu/arm/cortex-m4/context_rvds.S @@ -208,6 +208,7 @@ rt_hw_context_switch_to PROC MSR msp, r0 ; enable interrupts at processor level + CPSIE F CPSIE I ; never reach here! diff --git a/libcpu/arm/cortex-m7/context_gcc.S b/libcpu/arm/cortex-m7/context_gcc.S index 908a44f847..af6c9934d4 100644 --- a/libcpu/arm/cortex-m7/context_gcc.S +++ b/libcpu/arm/cortex-m7/context_gcc.S @@ -203,7 +203,9 @@ rt_hw_context_switch_to: NOP MSR msp, r0 - CPSIE I /* enable interrupts at processor level */ + /* enable interrupts at processor level */ + CPSIE F + CPSIE I /* never reach here! */ diff --git a/libcpu/arm/cortex-m7/context_iar.S b/libcpu/arm/cortex-m7/context_iar.S index 8761a97052..4cc9539112 100644 --- a/libcpu/arm/cortex-m7/context_iar.S +++ b/libcpu/arm/cortex-m7/context_iar.S @@ -207,7 +207,9 @@ rt_hw_context_switch_to: NOP MSR msp, r0 - CPSIE I ; enable interrupts at processor level + ; enable interrupts at processor level + CPSIE F + CPSIE I ; never reach here! diff --git a/libcpu/arm/cortex-m7/context_rvds.S b/libcpu/arm/cortex-m7/context_rvds.S index 53a3756783..38410c8a3b 100644 --- a/libcpu/arm/cortex-m7/context_rvds.S +++ b/libcpu/arm/cortex-m7/context_rvds.S @@ -208,6 +208,7 @@ rt_hw_context_switch_to PROC MSR msp, r0 ; enable interrupts at processor level + CPSIE F CPSIE I ; never reach here! |
