Search found 2 matches

by ceisendle
Wed Nov 02, 2016 11:02 am
Forum: ChibiOS/RT
Topic: Why to jump to _port_exit_from_isr from _port_irq_epilogue?
Replies: 3
Views: 2563

Re: Why to jump to _port_exit_from_isr from _port_irq_epilogue?

Wow.. tricky race-condition. But couldn't this be solved by removing the if (lr != (regarm_t)0xFFFFFFF1U) check? Ok, this might create problems when chSchIsPreemptionRequired() returns true, then ctxp is decremented two times - it would require another state variable in the task context to avoid ...
by ceisendle
Tue Nov 01, 2016 7:13 pm
Forum: ChibiOS/RT
Topic: Why to jump to _port_exit_from_isr from _port_irq_epilogue?
Replies: 3
Views: 2563

Why to jump to _port_exit_from_isr from _port_irq_epilogue?

Hi,

maybe a stupid question but during review of the irq_epilogue code (for ARM v6m - chcore_v6m.c) I recognized that even in case no rescheduling is required (chSchIsPreemptionRequired() returns false) the artificial return from ISR is used, so in fact on exit of an ISR and even if no rescheduling ...