From d39175daa9636f8a6cd937754c87f689c5120eb2 Mon Sep 17 00:00:00 2001 From: "bernard.xiong" Date: Wed, 28 Apr 2010 23:06:37 +0000 Subject: [PATCH] update CM0 context switch code. git-svn-id: https://rt-thread.googlecode.com/svn/trunk@679 bbd45198-f89e-11dd-88c7-29a3b14d5316 --- libcpu/arm/lpc1100/context_rvds.S | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libcpu/arm/lpc1100/context_rvds.S b/libcpu/arm/lpc1100/context_rvds.S index 7d9080643e..9eb913f27a 100644 --- a/libcpu/arm/lpc1100/context_rvds.S +++ b/libcpu/arm/lpc1100/context_rvds.S @@ -107,9 +107,10 @@ rt_hw_pend_sv PROC BEQ swtich_to_thread ; skip register save at the first time MRS r1, psp ; get from thread stack pointer - STMIA r1!, {r4 - r7} ; push r4 - r7 register + SUBS r1, r1, #0x10 LDR r0, [r0] STR r1, [r0] ; update from thread stack pointer + STMIA r1!, {r4 - r7} ; push r4 - r7 register swtich_to_thread LDR r1, =rt_interrupt_to_thread @@ -123,9 +124,8 @@ pendsv_exit ; restore interrupt MSR PRIMASK, r2 - MOV r0, lr - MOVS r1, #0x04 - ORRS r0, r0, r1 + MOVS r0, #0x04 + RSBS r0, #0 BX r0 ENDP -- GitLab