66//! @brief
77//! Adds a basic set of commands for interacting with Memfault SDK
88
9- #include "memfault/demo/cli.h"
10-
119#include <shell/shell.h>
1210
13- #include "memfault/core/data_export.h"
14- #include "memfault/core/debug_log.h"
15- #include "memfault/core/platform/core.h"
16- #include "memfault/core/reboot_tracking.h"
17- #include "memfault/core/trace_event.h"
18- #include "memfault/metrics/metrics.h"
11+ #include "memfault/components.h"
1912#include "memfault/ports/zephyr/http.h"
13+ #include "zephyr_release_specific_headers.h"
2014
2115static int prv_clear_core_cmd (const struct shell * shell , size_t argc , char * * argv ) {
2216 return memfault_demo_cli_cmd_clear_core (argc , argv );
@@ -30,6 +24,14 @@ static int prv_crash_example(const struct shell *shell, size_t argc, char **argv
3024 return memfault_demo_cli_cmd_crash (argc , argv );
3125}
3226
27+ static int prv_zephyr_assert_example (const struct shell * shell , size_t argc , char * * argv ) {
28+ #if !CONFIG_ASSERT
29+ MEMFAULT_LOG_WARN ("CONFIG_ASSERT was disabled in the build, this command will have no effect" );
30+ #endif
31+ __ASSERT (0 , "test assert" );
32+ return 0 ;
33+ }
34+
3335static int prv_test_log (const struct shell * shell , size_t argc , char * * argv ) {
3436 return memfault_demo_cli_cmd_test_log (argc , argv );
3537}
@@ -48,7 +50,8 @@ static int prv_hang_example(const struct shell *shell, size_t argc, char **argv)
4850#else
4951 MEMFAULT_LOG_DEBUG ("Hanging system and waiting for watchdog!" );
5052#endif
51- while (1 ) { }
53+ while (1 ) {
54+ }
5255 return -1 ;
5356}
5457
@@ -102,7 +105,8 @@ static bool prv_handle_download_complete(void *user_ctx) {
102105}
103106#endif /* CONFIG_MEMFAULT_HTTP_ENABLE */
104107
105- static int prv_check_and_fetch_ota_payload_cmd (const struct shell * shell , size_t argc , char * * argv ) {
108+ static int prv_check_and_fetch_ota_payload_cmd (const struct shell * shell , size_t argc ,
109+ char * * argv ) {
106110#if defined(CONFIG_MEMFAULT_HTTP_ENABLE )
107111 uint8_t working_buf [256 ];
108112
@@ -147,25 +151,30 @@ static int prv_trigger_heartbeat(const struct shell *shell, size_t argc, char **
147151static int prv_test_reboot (const struct shell * shell , size_t argc , char * * argv ) {
148152 memfault_reboot_tracking_mark_reset_imminent (kMfltRebootReason_UserReset , NULL );
149153 memfault_platform_reboot ();
150- return 0 ; // should be unreachable
154+ return 0 ; // should be unreachable
151155}
152156
153157SHELL_STATIC_SUBCMD_SET_CREATE (
154- sub_memfault_cmds ,
155- SHELL_CMD (reboot , NULL , "trigger a reboot and record it using memfault" , prv_test_reboot ),
156- SHELL_CMD (get_core , NULL , "gets the core" , prv_get_core_cmd ),
157- SHELL_CMD (clear_core , NULL , "clear the core" , prv_clear_core_cmd ),
158- SHELL_CMD (crash , NULL , "trigger a crash" , prv_crash_example ),
159- SHELL_CMD (test_log , NULL , "Writes test logs to log buffer" , prv_test_log ),
160- SHELL_CMD (trigger_logs , NULL , "Trigger capture of current log buffer contents" , prv_trigger_logs ),
161- SHELL_CMD (hang , NULL , "trigger a hang to test watchdog functionality" , prv_hang_example ),
162- SHELL_CMD (export , NULL , "dump chunks collected by Memfault SDK using https://mflt.io/chunk-data-export" , prv_chunk_data_export ),
163- SHELL_CMD (trace , NULL , "Capture an example trace event" , prv_example_trace_event_capture ),
164- SHELL_CMD (get_device_info , NULL , "display device information" , prv_get_device_info ),
165- SHELL_CMD (post_chunks , NULL , "Post Memfault data to cloud" , prv_post_data ),
166- SHELL_CMD (trigger_heartbeat , NULL , "Trigger an immediate capture of all heartbeat metrics" , prv_trigger_heartbeat ),
167- SHELL_CMD (get_latest_release , NULL , "checks to see if new ota payload is available" , prv_check_and_fetch_ota_payload_cmd ),
168- SHELL_SUBCMD_SET_END /* Array terminated. */
158+ sub_memfault_cmds ,
159+ SHELL_CMD (reboot , NULL , "trigger a reboot and record it using memfault" , prv_test_reboot ),
160+ SHELL_CMD (get_core , NULL , "gets the core" , prv_get_core_cmd ),
161+ SHELL_CMD (clear_core , NULL , "clear the core" , prv_clear_core_cmd ),
162+ SHELL_CMD (crash , NULL , "trigger a crash" , prv_crash_example ),
163+ SHELL_CMD (zephyr_assert , NULL , "trigger a zephyr __ASSERT" , prv_zephyr_assert_example ),
164+ SHELL_CMD (test_log , NULL , "Writes test logs to log buffer" , prv_test_log ),
165+ SHELL_CMD (trigger_logs , NULL , "Trigger capture of current log buffer contents" , prv_trigger_logs ),
166+ SHELL_CMD (hang , NULL , "trigger a hang to test watchdog functionality" , prv_hang_example ),
167+ SHELL_CMD (export , NULL ,
168+ "dump chunks collected by Memfault SDK using https://mflt.io/chunk-data-export" ,
169+ prv_chunk_data_export ),
170+ SHELL_CMD (trace , NULL , "Capture an example trace event" , prv_example_trace_event_capture ),
171+ SHELL_CMD (get_device_info , NULL , "display device information" , prv_get_device_info ),
172+ SHELL_CMD (post_chunks , NULL , "Post Memfault data to cloud" , prv_post_data ),
173+ SHELL_CMD (trigger_heartbeat , NULL , "Trigger an immediate capture of all heartbeat metrics" ,
174+ prv_trigger_heartbeat ),
175+ SHELL_CMD (get_latest_release , NULL , "checks to see if new ota payload is available" ,
176+ prv_check_and_fetch_ota_payload_cmd ),
177+ SHELL_SUBCMD_SET_END /* Array terminated. */
169178);
170179
171180SHELL_CMD_REGISTER (mflt , & sub_memfault_cmds , "Memfault Test Commands" , NULL );
0 commit comments