@@ -6,6 +6,71 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66and this project adheres to
77[ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
88
9+ ## [ 1.28.0] - 2025-08-04
10+
11+ This is a minor update release. Highlights:
12+
13+ - added a new test command for simulating hangs in ISRs
14+ - improved NMI exception capture
15+ - fixed a build issue in the nRF-Connect SDK port
16+
17+ ### 📈 Added
18+
19+ - Zephyr:
20+
21+ - Add a new test command, ` mflt test isr_hang ` , which will cause a busy loop
22+ hang inside a ` k_timer ` , which normally is executing from an ISR context.
23+ The system will only exit this condition if there is a watchdog or other
24+ higher-priority interrupt capable of preempting the ` k_timer ` ISR. The
25+ [ ` qemu ` sample app] ( examples/zephyr/qemu ) is updated to enable a watchdog
26+ which generates an NMI exception, caught by Memfault.
27+
28+ - Added a debug print when uploading data using
29+ ` CONFIG_MEMFAULT_HTTP_PERIODIC_UPLOAD ` that shows the bytes sent:
30+
31+ ``` bash
32+ [00:09:45.821,000] < dbg> mflt: memfault_platform_log: Uploaded 118 bytes of Memfault data
33+ ```
34+
35+ Only enabled when debug level prints are enabled for Memfault
36+ (` CONFIG_MEMFAULT_LOG_LEVEL_DBG=y` ).
37+
38+ # ## 🛠️ Changed
39+
40+ - Zephyr:
41+
42+ - NMI exceptions are now properly handled. Prior to this change, a coredump
43+ was captured on NMI exceptions but the MSP context was not fully unwound and
44+ the NVIC state was not included in the trace data.
45+
46+ - Add a new Kconfig option,
47+ ` CONFIG_MEMFAULT_COREDUMP_NVIC_INTERRUPTS_TO_COLLECT` , which controls the
48+ existing ` memfault_platform_config.h` setting
49+ ` MEMFAULT_NVIC_INTERRUPTS_TO_COLLECT` for Cortex-M targets. The default now
50+ is to collect all ` NUM_IRQS` as defined by Zephyr, which on many platforms
51+ will increase from the previous default of ` 32` . This improves the
52+ out-of-the-box information at the cost of 44 bytes in coredump storage
53+ consumed per additional 32 interrupts. Some example deltas shown below,
54+ including the byte delta in the stored coredump:
55+
56+ | Platform | Previous Default | New Default | Byte Delta |
57+ | --------- | ---------------- | ----------------------------------------------- | ---------- |
58+ | nRF52840 | 32 | 64 (\* 48, rounded up to nearest multiple of 32) | +44 |
59+ | nRF91 | 32 | 96 (\* 65 rounded up) | +88 |
60+ | nRF53 | 32 | 96 (\* 69 rounded up) | +88 |
61+ | STM32F407 | 32 | 96 (\* 82 rounded up) | +88 |
62+ | STM32H7B0 | 32 | 160 (\* 155 rounded up) | +176 |
63+ | STM32H563 | 32 | 160 (\* 155 rounded up) | +176 |
64+
65+ To restore the previous default, set
66+ ` CONFIG_MEMFAULT_COREDUMP_NVIC_INTERRUPTS_TO_COLLECT=32` .
67+
68+ - nRF-Connect SDK:
69+
70+ - Fix a build issue impacting some nRF54 series chips related to reboot reason
71+ decoding. Thanks to [@grochu](https://github.com/grochu) for providing the
72+ fix in [# 94](https://github.com/memfault/memfault-firmware-sdk/pull/94) 🎉!
73+
974# # [1.27.0] - 2025-07-21
1075
1176# ## 📈 Added
0 commit comments