diff options
author | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2008-10-15 18:42:48 +0000 |
---|---|---|
committer | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2008-10-15 18:42:48 +0000 |
commit | 8c778229e5d1cdd9b89eda7895c328341571cecd (patch) | |
tree | 8621a39662dae2b69546d56a6b94c96e673202ca | |
parent | 8687fa611367924c3869b023ed9c803b5de68ae9 (diff) | |
download | ChibiOS-8c778229e5d1cdd9b89eda7895c328341571cecd.tar.gz ChibiOS-8c778229e5d1cdd9b89eda7895c328341571cecd.tar.bz2 ChibiOS-8c778229e5d1cdd9b89eda7895c328341571cecd.zip |
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@471 35acf78f-673a-0410-8e92-d51de3d6d3f4
-rw-r--r-- | ports/MSP430/chcore.c | 8 | ||||
-rw-r--r-- | ports/MSP430/chcore.h | 3 |
2 files changed, 5 insertions, 6 deletions
diff --git a/ports/MSP430/chcore.c b/ports/MSP430/chcore.c index b87953ef0..b2ff849d6 100644 --- a/ports/MSP430/chcore.c +++ b/ports/MSP430/chcore.c @@ -50,8 +50,7 @@ __attribute__((naked)) void chSysSwitchI(Thread *otp, Thread *ntp) {
register struct intctx *sp asm("r1");
- asm volatile ("push r2 \n\t" \
- "push r11 \n\t" \
+ asm volatile ("push r11 \n\t" \
"push r10 \n\t" \
"push r9 \n\t" \
"push r8 \n\t" \
@@ -69,7 +68,7 @@ void chSysSwitchI(Thread *otp, Thread *ntp) { "pop r9 \n\t" \
"pop r10 \n\t" \
"pop r11 \n\t" \
- "reti" : : "r" (sp));
+ "ret" : : "r" (sp));
}
/**
@@ -80,7 +79,8 @@ void chSysPuts(char *msg) { void threadstart(void) {
- asm volatile ("mov r11, r15 \n\t" \
+ asm volatile ("eint \n\t" \
+ "mov r11, r15 \n\t" \
"call r10 \n\t" \
"call #chThdExit");
}
diff --git a/ports/MSP430/chcore.h b/ports/MSP430/chcore.h index fc689f806..ea239c688 100644 --- a/ports/MSP430/chcore.h +++ b/ports/MSP430/chcore.h @@ -51,7 +51,7 @@ struct intctx { regmsp r9;
regmsp r10;
regmsp r11;
- regmsp sr;
+// regmsp sr;
regmsp pc;
};
@@ -65,7 +65,6 @@ typedef struct { sizeof(struct intctx)); \
tp->p_ctx.sp->r10 = pf; \
tp->p_ctx.sp->r11 = arg; \
- tp->p_ctx.sp->sr = (regmsp)GIE; \
tp->p_ctx.sp->pc = threadstart; \
}
|