The `Timeout` drift test uses rescheduling inside a callback, but it is
currently disabled due to lack of stability. Rescheduling using relative
timeouts inside the callback is a bad technique as it leads to drift, so
I understand the test being disabled. It is better to use `Ticker` for a
periodic callback or to use `Timeout::attach_absolute`.
Add a simpler test that just ensures the callback is called repeatedly -
this test would detect issue #12940, and should not have stability
problems.
Chrono changes "optimised" `Timeout::handler` in a way that broke users
who rescheduled the timeout during their attached callback.
Attempted optimisation is less necessary now that
`platform.callback-nontrivial` is set to false by default - that
setting reduces overhead of copying the `Callback` to almost nothing.
Chrono conversions inadvertantly changed the core timed sleep routine
used by the RTOS idle to use `OsTimer::update_and_get_tick()` instead of
`OsTimer::get_tick()`.
Correct this, and expand/clarify documentation and naming to try to
prevent recurrence.
Another minor fix observed while inspecting code - `OsClock` can't just
use `milliseconds`, it should match the period of `OsTimer`, which
theoretically can be different.
Consider the following factors to define WDT reset delay:
1. Cannot be too small. This is to avoid premature WDT reset in pieces of timeout cascading.
2. Cannot be too large. This is to pass Greentea reset_reason/watchdog_reset tests, which have e.g. 50~100 reset delay tolerance.
Reverts commit 10481f2f7e partially.
Changes made to ExhaustibleBlockDevice hides simulated flash degradation
which is the assumed behavior. Converted back to original behavior.
The ADC range was previously 0-VBGR*2 (0 - 2.4 V). Change the reference
so that the ADC range is 0 - VDDA, to bring it in line with the documented
behavior of the mbed hal.
This target uses the QSPI interface hardware in XIP mode to allow
memory-mapped access to the WiFi interface firmware. This is
incompatible with the MMIO mode upon which QSPIFBlockDevice relies
to send specific commands over the QSPI bus.