-
Notifications
You must be signed in to change notification settings - Fork 3k
Description
Description of defect
When MBED_TICKLESS is set to 1, there are data losses observed on multiple peripherals.
For example, cellular stack using ATHandler. The UART is receiving corrupted data when tickless and enabled. An example case is when the modem repots SIM Ready, it sends back a string of 'READY', but the cellular stack sometimes receives 'RDY', sometimes, receives 'ADY', sometimes receives
the full 'READY'.
Same situation observed with SPI Block Device. when tickless is enabled, the file system read sometimes reads back corrupted data.
Issue will not be observed when tickless is disabled with the same code.
We've observed similar issue on F4 series and it was a timing issue of deep sleep, so tried to test a few combinations of configurations. So far the following configuration works on my board for your reference:
"lpticker_delay_ticks": 4
"deep-sleep-latency": 3
Target(s) affected by this defect ?
STM32L486RG
MTB_ADV_WISE_1570
Toolchain(s) (name and version) displaying this defect ?
GCC
ARMC6
(IAR was not tested)
What version of Mbed-os are you using (tag or sha) ?
mbed-os-5.14.1
What version(s) of tools are you using. List all that apply (E.g. mbed-cli)
mbed-cli 1.10.0
How is this defect reproduced ?
For WISE-1570, it has a NB-IoT on it, so just run cellular example on it and you can observe it. It is much easier to reproduce with modem interface baudrate 115200 and with mbed-trace enabled in debug level; the cellular stack just cannot ramp up to the network because it cannot get through the SIM check due to the missing bytes in AT commands.