summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2017-08-18 11:30:28 +0800
committerGitHub <[email protected]>2017-08-18 11:30:28 +0800
commit2331ebdc8efede7b3204dee1e222d04c1710c523 (patch)
tree1aaf0db5be43af12023807c1485a49e73ec7ac05
parentf975ef5146f4e12dd464b310b1cce3b8b0e9cbfb (diff)
parent959b97aa34440e63addf461d1d7f25c661788389 (diff)
Merge pull request #811 from aozima/update_cortex-m_port
[libcpu] Update cortex m port
-rw-r--r--bsp/stm32f20x/stm32_rom.icf4
-rw-r--r--libcpu/arm/cortex-m0/context_gcc.S4
-rw-r--r--libcpu/arm/cortex-m0/context_iar.S1
-rw-r--r--libcpu/arm/cortex-m0/context_rvds.S1
-rw-r--r--libcpu/arm/cortex-m3/context_gcc.S4
-rw-r--r--libcpu/arm/cortex-m3/context_iar.S4
-rw-r--r--libcpu/arm/cortex-m3/context_rvds.S1
-rw-r--r--libcpu/arm/cortex-m4/context_gcc.S4
-rw-r--r--libcpu/arm/cortex-m4/context_iar.S4
-rw-r--r--libcpu/arm/cortex-m4/context_rvds.S1
-rw-r--r--libcpu/arm/cortex-m7/context_gcc.S4
-rw-r--r--libcpu/arm/cortex-m7/context_iar.S4
-rw-r--r--libcpu/arm/cortex-m7/context_rvds.S1
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!