@@ -6,6 +6,71 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
and this project adheres to
7
7
[ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
8
8
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
+
9
74
# # [1.27.0] - 2025-07-21
10
75
11
76
# ## 📈 Added
0 commit comments