mirror of https://github.com/ARMmbed/mbed-os.git
28c63ec0f3
There are scenarios where putc is called within a critical section, e.g to log ASSERTs in early initialization code. The interrupts being disabled here prevents the handlers for the UARTE from executing. This breaks the tx_in_progress flag based approach. The tx_in_progress never gets reset. Poll on the TXDRDY instead. It can be recreated with a simple program as shown here: *************** Current Behavior **************** ++ MbedOS Error Info ++ Error Status: 0x80FF0100 Code: 256 Module: 255 Error Message: F ************** With Fix ************************* ++ MbedOS Error Info ++ Error Status: 0x80FF0100 Code: 256 Module: 255 Error Message: Fatal Run-time error Location: 0x2C0A9 Error Value: 0x0 Current Thread: Id: 0x20005520 Entry: 0x30EBF StackSize: 0x1000 StackMem: 0x20004520 SP: 0x20005490 For more info, visit: https://armmbed.github.io/mbedos-error/?error=0x80FF0100 -- MbedOS Error Info -- nrf failure at .\main.cpp:22 *************************************************** |
||
---|---|---|
.. | ||
TARGET_SOFTDEVICE_COMMON | ||
TARGET_SOFTDEVICE_NONE | ||
TARGET_SOFTDEVICE_S112 | ||
TARGET_SOFTDEVICE_S132_FULL | ||
TARGET_SOFTDEVICE_S132_MBR | ||
TARGET_SOFTDEVICE_S132_OTA | ||
TARGET_SOFTDEVICE_S140_FULL | ||
TARGET_SOFTDEVICE_S140_MBR | ||
TARGET_SOFTDEVICE_S140_OTA | ||
boards | ||
device | ||
drivers_nrf | ||
libraries |