aboutsummaryrefslogtreecommitdiffstats
path: root/ports
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2008-10-15 18:42:48 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2008-10-15 18:42:48 +0000
commit8c778229e5d1cdd9b89eda7895c328341571cecd (patch)
tree8621a39662dae2b69546d56a6b94c96e673202ca /ports
parent8687fa611367924c3869b023ed9c803b5de68ae9 (diff)
downloadChibiOS-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
Diffstat (limited to 'ports')
-rw-r--r--ports/MSP430/chcore.c8
-rw-r--r--ports/MSP430/chcore.h3
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; \
}