1.28.0
This is a minor update release. Highlights:
- added a new test command for simulating hangs in ISRs
- improved NMI exception capture
- fixed a build issue in the nRF-Connect SDK port
📈 Added
-
Zephyr:
-
Add a new test command,
mflt test isr_hang, which will cause a busy loop
hang inside ak_timer, which normally is executing from an ISR context.
The system will only exit this condition if there is a watchdog or other
higher-priority interrupt capable of preempting thek_timerISR. The
qemusample app is updated to enable a watchdog
which generates an NMI exception, caught by Memfault. -
Added a debug print when uploading data using
CONFIG_MEMFAULT_HTTP_PERIODIC_UPLOADthat shows the bytes sent:[00:09:45.821,000] <dbg> mflt: memfault_platform_log: Uploaded 118 bytes of Memfault data
Only enabled when debug level prints are enabled for Memfault
(CONFIG_MEMFAULT_LOG_LEVEL_DBG=y).
-
🛠️ Changed
-
Zephyr:
-
NMI exceptions are now properly handled. Prior to this change, a coredump
was captured on NMI exceptions but the MSP context was not fully unwound and
the NVIC state was not included in the trace data. -
Add a new Kconfig option,
CONFIG_MEMFAULT_COREDUMP_NVIC_INTERRUPTS_TO_COLLECT, which controls the
existingmemfault_platform_config.hsetting
MEMFAULT_NVIC_INTERRUPTS_TO_COLLECTfor Cortex-M targets. The default now
is to collect allNUM_IRQSas defined by Zephyr, which on many platforms
will increase from the previous default of32. This improves the
out-of-the-box information at the cost of 44 bytes in coredump storage
consumed per additional 32 interrupts. Some example deltas shown below,
including the byte delta in the stored coredump:Platform Previous Default New Default Byte Delta nRF52840 32 64 (*48, rounded up to nearest multiple of 32) +44 nRF91 32 96 (*65 rounded up) +88 nRF53 32 96 (*69 rounded up) +88 STM32F407 32 96 (*82 rounded up) +88 STM32H7B0 32 160 (*155 rounded up) +176 STM32H563 32 160 (*155 rounded up) +176 To restore the previous default, set
CONFIG_MEMFAULT_COREDUMP_NVIC_INTERRUPTS_TO_COLLECT=32.
-
-
nRF-Connect SDK: