From ad4cf99eb30af3d8bc0dc4aa6bcd59b4194a5a35 Mon Sep 17 00:00:00 2001 From: Jonathan Rico Date: Wed, 25 May 2022 09:17:47 +0200 Subject: [PATCH] Shell: add kernel sleep command Basic sleep command for scripting purposes. Signed-off-by: Jonathan Rico --- subsys/shell/modules/kernel_service.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/subsys/shell/modules/kernel_service.c b/subsys/shell/modules/kernel_service.c index 9c5276d5e1d..10fbdad2e71 100644 --- a/subsys/shell/modules/kernel_service.c +++ b/subsys/shell/modules/kernel_service.c @@ -15,6 +15,7 @@ #include #include #include +#include static int cmd_kernel_version(const struct shell *shell, size_t argc, char **argv) @@ -218,6 +219,27 @@ static int cmd_kernel_stacks(const struct shell *shell, } #endif +static int cmd_kernel_sleep(const struct shell *sh, + size_t argc, char **argv) +{ + ARG_UNUSED(sh); + ARG_UNUSED(argc); + + uint32_t ms; + int err = 0; + + ms = shell_strtoul(argv[2], 10, &err); + + if (!err) { + k_msleep(ms); + } else { + shell_error(sh, "Unable to parse input (err %d)", err); + return err; + } + + return 0; +} + #if defined(CONFIG_REBOOT) static int cmd_kernel_reboot_warm(const struct shell *shell, size_t argc, char **argv) @@ -262,6 +284,7 @@ SHELL_STATIC_SUBCMD_SET_CREATE(sub_kernel, #endif SHELL_CMD(uptime, NULL, "Kernel uptime.", cmd_kernel_uptime), SHELL_CMD(version, NULL, "Kernel version.", cmd_kernel_version), + SHELL_CMD_ARG(sleep, NULL, "ms", cmd_kernel_sleep, 2, 0), SHELL_SUBCMD_SET_END /* Array terminated. */ );