From 036d2e2d8177063863b39d5009d59698a24a1436 Mon Sep 17 00:00:00 2001 From: Benjamin Valentin Date: Wed, 3 Jun 2020 16:10:31 +0200 Subject: [PATCH] shell_commands: provide command to reboot to bootloader Make the triggering of the bootloader available as a shell command. --- sys/shell/commands/sc_sys.c | 14 ++++++++++++++ sys/shell/commands/shell_commands.c | 7 +++++++ 2 files changed, 21 insertions(+) diff --git a/sys/shell/commands/sc_sys.c b/sys/shell/commands/sc_sys.c index 6aa703f051..3452e8f915 100644 --- a/sys/shell/commands/sc_sys.c +++ b/sys/shell/commands/sc_sys.c @@ -32,6 +32,20 @@ int _reboot_handler(int argc, char **argv) return 0; } +#ifdef MODULE_USB_BOARD_RESET +void usb_board_reset_in_bootloader(void); + +int _bootloader_handler(int argc, char **argv) +{ + (void) argc; + (void) argv; + + usb_board_reset_in_bootloader(); + + return 0; +} +#endif + int _version_handler(int argc, char **argv) { (void) argc; diff --git a/sys/shell/commands/shell_commands.c b/sys/shell/commands/shell_commands.c index 084ab13d6d..9905cd7b9d 100644 --- a/sys/shell/commands/shell_commands.c +++ b/sys/shell/commands/shell_commands.c @@ -175,9 +175,16 @@ extern int _suit_handler(int argc, char **argv); extern int _cryptoauth(int argc, char **argv); #endif +#ifdef MODULE_USB_BOARD_RESET +extern int _bootloader_handler(int argc, char **argv); +#endif + const shell_command_t _shell_command_list[] = { {"reboot", "Reboot the node", _reboot_handler}, {"version", "Prints current RIOT_VERSION", _version_handler}, +#ifdef MODULE_USB_BOARD_RESET + {"bootloader", "Reboot to bootloader", _bootloader_handler}, +#endif #ifdef MODULE_CONFIG {"id", "Gets or sets the node's id.", _id_handler}, #endif