1.24.0
📈 Added
-
General:
- Add a new API,
memfault_log_get_unsent_count()
, which returns the log
count and size in bytes of unsent logs in the log buffer. This can be used
insidememfault_log_handle_saved_callback()
for example to drain the
packetized logs when a certain watermark is reached.
- Add a new API,
-
ESP-IDF:
-
Add a Kconfig option,
CONFIG_MEMFAULT_TIME_SINCE_BOOT_CUSTOM
, which when
set=n
, enables using a custom implementation of
memfault_platform_get_time_since_boot_ms()
. -
Add 2 new metrics for tracking raw network bytes rx / tx. These metrics
track network IO traffic on the default netif:network_rx_bytes
network_tx_bytes
These metrics are enabled by default, and can be disabled with
CONFIG_MEMFAULT_METRICS_NETWORK_IO=n
-
🛠️ Changed
-
FreeRTOS (including ESP-IDF):
-
Rename the thread stack usage measurement variable included in coredumps
whenMEMFAULT_COREDUMP_COMPUTE_THREAD_STACK_USAGE
is enabled from
high_watermark
tostack_unused
. This change is to make the
implementation more readable. The Memfault backend is updated to process
both the old and new formats. -
FreeRTOS-detected stack overflows (via
vApplicationStackOverflowHook
) will
now be correctly tagged asStack Overflow
for the trace reason in
Memfault, instead ofAssert
.
-
🐛 Fixed
-
Zephyr:
- Fix a null dereference when calling
memfault_coredump_storage_compute_size_required()
(eg the shell command
mflt coredump_size
).
- Fix a null dereference when calling
-
General:
-
For the emlib WDOG port implementation,
ports/emlib/wdog_software_watchdog.c
,
enable the WDOG when in EM1 mode for series2 chips. -
Added support for
MEMFAULT_REBOOT_REASON_CLEAR
in the
ports/nrf5_sdk/resetreas_reboot_tracking.c
implementation, by default enabled (like other ports). This permits opting
out of the auto-clearing of theNRF_POWER->RESETREAS
register, in case the
user needs it after the function runs.
-
-
FreeRTOS (including ESP-IDF):
-
Fix incorrect computation of per-thread stack usage metrics
(MEMFAULT_FREERTOS_COLLECT_THREAD_METRICS
). Before this fix, the returned
values had 2 errors:- the value is the unused stack space, not the used stack space
- on platforms where
sizeof(StackType_t)
is not 1 byte, the numerator
when computing percentage is incorrectly scaled down by
sizeof(StackType_t)
, resulting in significant under-reporting of the
stack usage percentage.
Users can apply device and software version filtering on dashboards to
filter out reports from devices that are running an old version of the SDK.
-
-
ESP-IDF:
- Fix a potential issue that would cause the wrong implementation of
memfault_platform_time_get_current()
to be included in the final link,
whenCONFIG_MEMFAULT_SYSTEM_TIME=y
is enabled (default).
- Fix a potential issue that would cause the wrong implementation of
🛠️ Changed
-
ESP-IDF:
CONFIG_MEMFAULT_ENABLE_REBOOT_DIAG_DUMP
now defaults toy
instead of
n
, to print out the reboot reason on boot. Disable it with
CONFIG_MEMFAULT_ENABLE_REBOOT_DIAG_DUMP=n
.