update CM0 context switch code.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@679 bbd45198-f89e-11dd-88c7-29a3b14d5316
This commit is contained in:
parent
7df7dafe70
commit
d39175daa9
|
@ -107,9 +107,10 @@ rt_hw_pend_sv PROC
|
||||||
BEQ swtich_to_thread ; skip register save at the first time
|
BEQ swtich_to_thread ; skip register save at the first time
|
||||||
|
|
||||||
MRS r1, psp ; get from thread stack pointer
|
MRS r1, psp ; get from thread stack pointer
|
||||||
STMIA r1!, {r4 - r7} ; push r4 - r7 register
|
SUBS r1, r1, #0x10
|
||||||
LDR r0, [r0]
|
LDR r0, [r0]
|
||||||
STR r1, [r0] ; update from thread stack pointer
|
STR r1, [r0] ; update from thread stack pointer
|
||||||
|
STMIA r1!, {r4 - r7} ; push r4 - r7 register
|
||||||
|
|
||||||
swtich_to_thread
|
swtich_to_thread
|
||||||
LDR r1, =rt_interrupt_to_thread
|
LDR r1, =rt_interrupt_to_thread
|
||||||
|
@ -123,9 +124,8 @@ pendsv_exit
|
||||||
; restore interrupt
|
; restore interrupt
|
||||||
MSR PRIMASK, r2
|
MSR PRIMASK, r2
|
||||||
|
|
||||||
MOV r0, lr
|
MOVS r0, #0x04
|
||||||
MOVS r1, #0x04
|
RSBS r0, #0
|
||||||
ORRS r0, r0, r1
|
|
||||||
BX r0
|
BX r0
|
||||||
ENDP
|
ENDP
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue