mirror of https://github.com/ARMmbed/mbed-os.git
Update Ticker wrapper to handle early interrupts
Update the LowPowerTickerWrapper class to handle rather than ignore early low power ticker interrupts. This ensures that devices don't get stuck in sleep due to a ignored early low power ticker interrupt.pull/8956/head
parent
f8e1116019
commit
3f06911782
|
@ -33,7 +33,12 @@ void LowPowerTickerWrapper::irq_handler(ticker_irq_handler_type handler)
|
|||
{
|
||||
core_util_critical_section_enter();
|
||||
|
||||
if (_pending_fire_now || _match_check(_intf->read()) || _suspended) {
|
||||
// This code no longer filters out early interrupts. Instead it
|
||||
// passes them through to the next layer and ignores further interrupts
|
||||
// until the next call to set_interrrupt or fire_interrupt (when not suspended).
|
||||
// This is to ensure that the device doesn't get stuck in sleep due to an
|
||||
// early low power ticker interrupt that was ignored.
|
||||
if (_pending_fire_now || _pending_match || _suspended) {
|
||||
_timeout.detach();
|
||||
_pending_timeout = false;
|
||||
_pending_match = false;
|
||||
|
|
Loading…
Reference in New Issue