Fixed bug 3187105.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@2744 35acf78f-673a-0410-8e92-d51de3d6d3f4master
parent
690d08a1f9
commit
11af394fec
|
@ -75,7 +75,7 @@ void _port_switch_from_isr(void) {
|
|||
|
||||
chSchDoRescheduleI();
|
||||
|
||||
/* Note, the last registers are restored alone after re-enabling the
|
||||
/* Note, the last register is restored alone after re-enabling the
|
||||
interrupts in order to minimize the (very remote and unlikely)
|
||||
possibility that the stack is filled by continuous and saturating
|
||||
interrupts that would not allow that last words to be pulled out of
|
||||
|
@ -84,8 +84,9 @@ void _port_switch_from_isr(void) {
|
|||
"mov r12, r1 \n\t"
|
||||
"msr APSR, r0 \n\t"
|
||||
"mov lr, r2 \n\t"
|
||||
"pop {r0, r1, r2, r3} \n\t"
|
||||
"cpsie i \n\t"
|
||||
"pop {r0, r1, r2, r3, pc}" : : : "memory");
|
||||
"pop {pc}" : : : "memory");
|
||||
}
|
||||
|
||||
#define PUSH_CONTEXT(sp) { \
|
||||
|
|
|
@ -96,8 +96,9 @@ _port_switch_from_isr:
|
|||
mov r12, r1
|
||||
msr APSR, r0
|
||||
mov lr, r2
|
||||
pop {r0, r1, r2, r3}
|
||||
cpsie i
|
||||
pop {r0, r1, r2, r3, pc}
|
||||
pop {pc}
|
||||
|
||||
/*
|
||||
* Reschedule verification and setup after an IRQ.
|
||||
|
|
|
@ -93,8 +93,9 @@ _port_switch_from_isr PROC
|
|||
mov r12, r1
|
||||
msr APSR, r0
|
||||
mov lr, r2
|
||||
pop {r0, r1, r2, r3}
|
||||
cpsie i
|
||||
pop {r0, r1, r2, r3, pc}
|
||||
pop {pc}
|
||||
ENDP
|
||||
|
||||
/*
|
||||
|
|
|
@ -69,6 +69,8 @@
|
|||
*****************************************************************************
|
||||
|
||||
*** 2.3.0 ***
|
||||
- FIX: Stack overflow in CM0 port when nearing interrupts saturation (bug
|
||||
3187105)(backported to 2.2.1).
|
||||
- FIX: Error in MAC driver (bug 3179783)(backported to 2.2.1).
|
||||
- FIX: Fixed wrong serial driver macros (bug 3173336)(backported to 2.2.1).
|
||||
- NEW: Added experimental generic USB driver, it will evolve in next
|
||||
|
|
Loading…
Reference in New Issue