t-kernel team mailing list archive
-
t-kernel team
-
Mailing list archive
-
Message #00108
[PATCH] monitor: monhdr, save register
From: Du Huanpeng <u74147@xxxxxxxxx>
Signed-off-by: Du Huanpeng <u74147@xxxxxxxxx>
---
tkernel_source/monitor/hwdepend/arm/cpu/monhdr.S | 32 ++++++++++++------------
1 file changed, 16 insertions(+), 16 deletions(-)
diff --git a/tkernel_source/monitor/hwdepend/arm/cpu/monhdr.S b/tkernel_source/monitor/hwdepend/arm/cpu/monhdr.S
index 9e9e53f..9d985d4 100755
--- a/tkernel_source/monitor/hwdepend/arm/cpu/monhdr.S
+++ b/tkernel_source/monitor/hwdepend/arm/cpu/monhdr.S
@@ -63,13 +63,13 @@ _defaultHdr:
* TODO: cp15
*/
-#define stack_regs_usr 0
-#define stack_regs_fiq 0
-#define stack_regs_irq 0
-#define stack_regs_svc 0
-#define stack_regs_abt 0
-#define stack_regs_und 0
-#define stack_regs_sys 0
+#define stack_regs_usr 0x200
+#define stack_regs_fiq 0x400
+#define stack_regs_irq 0x600
+#define stack_regs_svc 0x800
+#define stack_regs_abt 0xA00
+#define stack_regs_und 0xC00
+#define stack_regs_sys 0x200
/*
* svc mode -> go
@@ -90,9 +90,9 @@ _defaultHdr:
stmia lr, {r0-r7} @ Now, we can work with r0-r7
/* svc mode */
- ldr lr, =stack_regs_svc
- ldr r7, [sp, #4]
- stmia lr, {r13, r7}
+ ldr r7, =stack_regs_svc
+ ldr lr, [sp, #4]
+ stmia r7, {sp, lr}
/* fiq mode */
mrs r7, cpsr @ r7 = cpsr
bic r7, #0x1F
@@ -127,7 +127,7 @@ _defaultHdr:
msr cpsr, r7
ldr r6, =stack_regs_usr
add r6, #32
- stmia r6, {r7-r14}
+ stmia r6, {r8-r14}
/* back to svc */
bic r7, #0x1F
orr r7, #0x13
@@ -145,11 +145,11 @@ _defaultHdr:
* W callExtProg( FP entry )
*/
.text
- .balign 4
- .globl Csym(callExtProg)
- .type Csym(callExtProg), %function
-Csym(callExtProg):
+ .align 2
+ .globl callExtProg
+ .type callExtProg, %function
+callExtProg:
push {r4-r10, fp, lr} // save registers
blx r0 // call entry(void)
pop {r4-r10, fp, lr} // restore registers
- mov pc, lr
+ bx lr
--
1.9.1