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:
bernard.xiong 2010-04-28 23:06:37 +00:00
parent 7df7dafe70
commit d39175daa9
1 changed files with 4 additions and 4 deletions

View File

@ -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