Fixed bug 2846278.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@1111 35acf78f-673a-0410-8e92-d51de3d6d3f4master
parent
c4299aa2da
commit
518fc97030
|
@ -151,8 +151,8 @@ void PendSVVector(void) {
|
||||||
Thread *otp;
|
Thread *otp;
|
||||||
register struct intctx *sp_thd asm("r12");
|
register struct intctx *sp_thd asm("r12");
|
||||||
|
|
||||||
chSysLockFromIsr();
|
|
||||||
asm volatile ("push {lr}");
|
asm volatile ("push {lr}");
|
||||||
|
chSysLockFromIsr();
|
||||||
if (!chSchRescRequiredI()) {
|
if (!chSchRescRequiredI()) {
|
||||||
chSysUnlockFromIsr();
|
chSysUnlockFromIsr();
|
||||||
asm volatile ("pop {pc}");
|
asm volatile ("pop {pc}");
|
||||||
|
|
|
@ -233,7 +233,7 @@ struct context {
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
#define port_lock() { \
|
#define port_lock() { \
|
||||||
asm volatile ("bl _port_lock" : : : "r3", "lr"); \
|
asm volatile ("bl _port_lock" : : : "r3", "lr"); \
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -247,7 +247,7 @@ struct context {
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
#define port_unlock() { \
|
#define port_unlock() { \
|
||||||
asm volatile ("bl _port_unlock" : : : "r3", "lr"); \
|
asm volatile ("bl _port_unlock" : : : "r3", "lr"); \
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue