cc2538: clock: Request an etimer poll in clock_adjust()
During PM1+, the hardware timer used to implement the Contiki clock is frozen, so clock_adjust() needs to be called when exiting those modes in order to compensate for the clock ticks missed while the timer was frozen. Doing so changes the Contiki clock time, so etimer_request_poll() needs to be called in order to inform the etimer library that an etimer might have expired. Note that waiting for the next clock ISR to call etimer_request_poll() is unreliable because the system might go back to sleep beforehand. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
This commit is contained in:
parent
79e6514c80
commit
28a563a24b
@ -197,6 +197,14 @@ clock_adjust(clock_time_t ticks)
|
||||
|
||||
/* Re-Start the SysTick */
|
||||
REG(SYSTICK_STCTRL) |= SYSTICK_STCTRL_ENABLE;
|
||||
|
||||
/*
|
||||
* Inform the etimer library that the system clock has changed and that an
|
||||
* etimer might have expired.
|
||||
*/
|
||||
if(etimer_pending()) {
|
||||
etimer_request_poll();
|
||||
}
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user