未验证 提交 b1a9c4c4 编写于 作者: B blta 提交者: GitHub

[libcpu/arm]: add dsb and isb instructions in the end of rt_hw_context_switch_to (#5748)

上级 6b565152
...@@ -180,6 +180,10 @@ rt_hw_context_switch_to: ...@@ -180,6 +180,10 @@ rt_hw_context_switch_to:
/* enable interrupts at processor level */ /* enable interrupts at processor level */
CPSIE I CPSIE I
/* ensure PendSV exception taken place before subsequent operation */
DSB
ISB
/* never reach here! */ /* never reach here! */
/* compatible with old version */ /* compatible with old version */
......
...@@ -186,6 +186,10 @@ rt_hw_context_switch_to: ...@@ -186,6 +186,10 @@ rt_hw_context_switch_to:
; enable interrupts at processor level ; enable interrupts at processor level
CPSIE I CPSIE I
; ensure PendSV exception taken place before subsequent operation
DSB
ISB
; never reach here! ; never reach here!
; compatible with old version ; compatible with old version
......
...@@ -189,6 +189,10 @@ rt_hw_context_switch_to PROC ...@@ -189,6 +189,10 @@ rt_hw_context_switch_to PROC
; enable interrupts at processor level ; enable interrupts at processor level
CPSIE I CPSIE I
; ensure PendSV exception taken place before subsequent operation
DSB
ISB
; never reach here! ; never reach here!
ENDP ENDP
......
...@@ -181,6 +181,10 @@ rt_hw_context_switch_to: ...@@ -181,6 +181,10 @@ rt_hw_context_switch_to:
/* enable interrupts at processor level */ /* enable interrupts at processor level */
CPSIE I CPSIE I
/* ensure PendSV exception taken place before subsequent operation */
DSB
ISB
/* never reach here! */ /* never reach here! */
/* compatible with old version */ /* compatible with old version */
......
...@@ -187,6 +187,10 @@ rt_hw_context_switch_to: ...@@ -187,6 +187,10 @@ rt_hw_context_switch_to:
; enable interrupts at processor level ; enable interrupts at processor level
CPSIE I CPSIE I
; ensure PendSV exception taken place before subsequent operation
DSB
ISB
; never reach here! ; never reach here!
; compatible with old version ; compatible with old version
......
...@@ -190,6 +190,10 @@ rt_hw_context_switch_to PROC ...@@ -190,6 +190,10 @@ rt_hw_context_switch_to PROC
; enable interrupts at processor level ; enable interrupts at processor level
CPSIE I CPSIE I
; ensure PendSV exception taken place before subsequent operation
DSB
ISB
; never reach here! ; never reach here!
ENDP ENDP
......
...@@ -162,6 +162,10 @@ rt_hw_context_switch_to: ...@@ -162,6 +162,10 @@ rt_hw_context_switch_to:
CPSIE F CPSIE F
CPSIE I CPSIE I
/* ensure PendSV exception taken place before subsequent operation */
DSB
ISB
/* never reach here! */ /* never reach here! */
/* compatible with old version */ /* compatible with old version */
......
...@@ -161,6 +161,10 @@ rt_hw_context_switch_to: ...@@ -161,6 +161,10 @@ rt_hw_context_switch_to:
CPSIE F CPSIE F
CPSIE I CPSIE I
; ensure PendSV exception taken place before subsequent operation
DSB
ISB
; never reach here! ; never reach here!
; compatible with old version ; compatible with old version
......
...@@ -167,6 +167,10 @@ rt_hw_context_switch_to PROC ...@@ -167,6 +167,10 @@ rt_hw_context_switch_to PROC
CPSIE F CPSIE F
CPSIE I CPSIE I
; ensure PendSV exception taken place before subsequent operation
DSB
ISB
; never reach here! ; never reach here!
ENDP ENDP
......
...@@ -249,6 +249,10 @@ rt_hw_context_switch_to: ...@@ -249,6 +249,10 @@ rt_hw_context_switch_to:
CPSIE F CPSIE F
CPSIE I CPSIE I
/* ensure PendSV exception taken place before subsequent operation */
DSB
ISB
/* never reach here! */ /* never reach here! */
/* compatible with old version */ /* compatible with old version */
......
...@@ -253,6 +253,10 @@ rt_hw_context_switch_to: ...@@ -253,6 +253,10 @@ rt_hw_context_switch_to:
CPSIE F CPSIE F
CPSIE I CPSIE I
; ensure PendSV exception taken place before subsequent operation
DSB
ISB
; never reach here! ; never reach here!
; compatible with old version ; compatible with old version
......
...@@ -254,6 +254,10 @@ rt_hw_context_switch_to PROC ...@@ -254,6 +254,10 @@ rt_hw_context_switch_to PROC
CPSIE F CPSIE F
CPSIE I CPSIE I
; ensure PendSV exception taken place before subsequent operation
DSB
ISB
; never reach here! ; never reach here!
ENDP ENDP
......
...@@ -208,6 +208,10 @@ rt_hw_context_switch_to: ...@@ -208,6 +208,10 @@ rt_hw_context_switch_to:
CPSIE F CPSIE F
CPSIE I CPSIE I
/* ensure PendSV exception taken place before subsequent operation */
DSB
ISB
/* never reach here! */ /* never reach here! */
/* compatible with old version */ /* compatible with old version */
......
...@@ -208,6 +208,10 @@ rt_hw_context_switch_to: ...@@ -208,6 +208,10 @@ rt_hw_context_switch_to:
CPSIE F CPSIE F
CPSIE I CPSIE I
; ensure PendSV exception taken place before subsequent operation
DSB
ISB
; never reach here! ; never reach here!
; compatible with old version ; compatible with old version
......
...@@ -208,6 +208,10 @@ rt_hw_context_switch_to PROC ...@@ -208,6 +208,10 @@ rt_hw_context_switch_to PROC
CPSIE F CPSIE F
CPSIE I CPSIE I
; ensure PendSV exception taken place before subsequent operation
DSB
ISB
; never reach here! ; never reach here!
ENDP ENDP
......
...@@ -208,6 +208,10 @@ rt_hw_context_switch_to: ...@@ -208,6 +208,10 @@ rt_hw_context_switch_to:
CPSIE F CPSIE F
CPSIE I CPSIE I
/* ensure PendSV exception taken place before subsequent operation */
DSB
ISB
/* never reach here! */ /* never reach here! */
/* compatible with old version */ /* compatible with old version */
......
...@@ -208,6 +208,10 @@ rt_hw_context_switch_to: ...@@ -208,6 +208,10 @@ rt_hw_context_switch_to:
CPSIE F CPSIE F
CPSIE I CPSIE I
; ensure PendSV exception taken place before subsequent operation
DSB
ISB
; never reach here! ; never reach here!
; compatible with old version ; compatible with old version
......
...@@ -208,6 +208,10 @@ rt_hw_context_switch_to PROC ...@@ -208,6 +208,10 @@ rt_hw_context_switch_to PROC
CPSIE F CPSIE F
CPSIE I CPSIE I
; ensure PendSV exception taken place before subsequent operation
DSB
ISB
; never reach here! ; never reach here!
ENDP ENDP
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册