|
1 | 1 | # Memfault Firmware SDK Changelog
|
2 | 2 |
|
| 3 | +## [1.4.3] - 2023-11-08 |
| 4 | + |
| 5 | +### :rocket: New Features |
| 6 | + |
| 7 | +- General: |
| 8 | + |
| 9 | + - Add a new streamlined Metrics setter API: |
| 10 | + |
| 11 | + - `MEMFAULT_HEARTBEAT_SET_SIGNED(key_name, signed_value)` |
| 12 | + - `MEMFAULT_HEARTBEAT_SET_UNSIGNED(key_name, unsigned_value)` |
| 13 | + - `MEMFAULT_HEARTBEAT_SET_STRING(key_name, value)` |
| 14 | + - `MEMFAULT_HEARTBEAT_TIMER_START(key_name)` |
| 15 | + - `MEMFAULT_HEARTBEAT_TIMER_STOP(key_name)` |
| 16 | + - `MEMFAULT_HEARTBEAT_ADD(key_name, amount)` |
| 17 | + |
| 18 | + These APIs can be used in place of the original APIs: |
| 19 | + |
| 20 | + - `memfault_metrics_heartbeat_set_signed(MEMFAULT_METRICS_KEY(key_name), signed_value)` |
| 21 | + - `memfault_metrics_heartbeat_set_unsigned(MEMFAULT_METRICS_KEY(key_name), unsigned_value)` |
| 22 | + - `memfault_metrics_heartbeat_set_string(MEMFAULT_METRICS_KEY(key_name), value)` |
| 23 | + - `memfault_metrics_heartbeat_timer_start(MEMFAULT_METRICS_KEY(key_name))` |
| 24 | + - `memfault_metrics_heartbeat_timer_stop(MEMFAULT_METRICS_KEY(key_name))` |
| 25 | + - `memfault_metrics_heartbeat_add(MEMFAULT_METRICS_KEY(key_name), amount)` |
| 26 | + |
| 27 | + Saving some typing! |
| 28 | + |
| 29 | + - Add the ability to compute FreeRTOS task stack high watermarks when storing |
| 30 | + coredumps. This is useful only if the entire RAM (`.data` + `.bss`) cannot |
| 31 | + be saved in the coredump. The feature is opt-in with the config flag |
| 32 | + `#define MEMFAULT_COREDUMP_COMPUTE_THREAD_STACK_USAGE 1`. |
| 33 | + |
| 34 | + - Add a `heartbeat` command to the [core demo cli](components/demo). This |
| 35 | + behaves the same as the commands of the same name already present in the |
| 36 | + Zephyr + ESP-IDF port. |
| 37 | + |
| 38 | + - Add a `test_cassert` command to the core demo cli. This command executes a C |
| 39 | + stdlib `<assert.h>``assert(0)` call. For platforms that do not implement a |
| 40 | + `assert()` handler, a config flag `MEMFAULT_DEMO_DISABLE_CASSERT` can be |
| 41 | + defined to `0` to disable the command. |
| 42 | + |
| 43 | +- ESP-IDF: |
| 44 | + |
| 45 | + - Add a new out-of-box metric, `wifi_ap_oui`, which will record the associated |
| 46 | + AP's Organizationally Unique Identifier (OUI) in the Memfault heartbeat. |
| 47 | + |
| 48 | +### :chart_with_upwards_trend: Improvements |
| 49 | + |
| 50 | +- General: |
| 51 | + |
| 52 | + - Disable a warning emitted by the ARM C Compiler v5 |
| 53 | + (`#188-D: enumerated type mixed with another type`) when initializing a |
| 54 | + structure in |
| 55 | + [`components/core/src/memfault_log.c`:314](https://github.com/memfault/memfault-firmware-sdk/blob/1.4.3/components/core/src/memfault_log.c#L313). |
| 56 | + |
| 57 | + - Improve the quality of Assert backtraces when using the ARM C Compiler v5. |
| 58 | + Certain frames in the assert call stack were missing link register |
| 59 | + inforation, due to compiler optimizations based on the `noreturn` and |
| 60 | + unreachable compiler hints. These hints have been removed for `armcc`, which |
| 61 | + should permit full stack unwinding for Assert coredumps generated from |
| 62 | + builds on that toolchain. |
| 63 | + |
| 64 | + - Perform an update of the timer when calling the |
| 65 | + `memfault_metrics_heartbeat_timer_read()` debug function. Fixes |
| 66 | + [#65](https://github.com/memfault/memfault-firmware-sdk/pull/65). Thanks to |
| 67 | + @LuskeyNoah for providing this fix! |
| 68 | + |
| 69 | +- ESP-IDF: |
| 70 | + |
| 71 | + - Fix a missing piece enabling the "zero-config" integration (originally added |
| 72 | + in `1.4.0`)- the `memfault_platform_port.h` file was still incorrectly |
| 73 | + required. This is now fixed. |
| 74 | + |
3 | 75 | ## [1.4.2] - 2023-11-02
|
4 | 76 |
|
5 | 77 | ### :chart_with_upwards_trend: Improvements
|
|
80 | 152 |
|
81 | 153 | - Add a new Kconfig flag, `MEMFAULT_COREDUMP_STORAGE_MAX_SIZE`, which can be
|
82 | 154 | used to set the Memfault SDK's built-in
|
83 |
| - [ESP-IDF coredump storage implementation](sdk/embedded/ports/esp_idf/memfault/common/memfault_platform_coredump.c) |
| 155 | + [ESP-IDF coredump storage implementation](https://github.com/memfault/memfault-firmware-sdk/blob/master/ports/esp_idf/memfault/common/memfault_platform_coredump.c) |
84 | 156 | to artificially limit the maximum coredump storage size. This is useful for
|
85 | 157 | situations where the default `memfault_platform_coredump_get_regions()`
|
86 | 158 | function is still desirable, but the coredump maximum size needs to be
|
|
0 commit comments