From 1eabb376cdaeb42a7421c123d0e1fabd59f6c2d1 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Mon, 14 Apr 2008 12:25:50 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@264 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- ports/ARMCM3/chcore.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'ports') diff --git a/ports/ARMCM3/chcore.c b/ports/ARMCM3/chcore.c index 25ba2e85f..4f4019706 100644 --- a/ports/ARMCM3/chcore.c +++ b/ports/ARMCM3/chcore.c @@ -76,7 +76,11 @@ void threadstart(void) { void SysTickVector(void) { chSysIRQEnterI(); + chSysLock(); + chSysTimerHandlerI(); + + chSysUnlock(); chSysIRQExitI(); } @@ -94,7 +98,6 @@ void chSysIRQExitI(void) { asm volatile ("mrs r0, PSP \n\t" \ "ldr r2, [r0, #24] \n\t" \ - "orr r2, r2, #1 \n\t" \ "ldr r1, =retaddr \n\t" \ "str r2, [r1] \n\t" \ "ldr r1, =threadswitch \n\t" \ @@ -118,6 +121,7 @@ void threadswitch(void) { "push {r0} \n\t" \ "ldr r0, =retaddr \n\t" \ "ldr r0, [r0] \n\t" \ + "orr r0, r0, #1 \n\t" \ "str r0, [sp, #28] \n\t" \ "bl chSchDoRescheduleI \n\t" \ "pop {r0} \n\t" \ -- cgit v1.2.3