From 670b56996be3c125b172e5c0df82d66596773f18 Mon Sep 17 00:00:00 2001 From: Daniel Schaefer Date: Fri, 25 Jul 2025 22:38:11 +0800 Subject: [PATCH] Add example for picotool reset Signed-off-by: Daniel Schaefer --- usb/device/CMakeLists.txt | 1 + usb/device/dev_picotool_reset/CMakeLists.txt | 25 +++++++++++++++++++ .../dev_picotool_reset/picotool_reset.c | 15 +++++++++++ 3 files changed, 41 insertions(+) create mode 100644 usb/device/dev_picotool_reset/CMakeLists.txt create mode 100644 usb/device/dev_picotool_reset/picotool_reset.c diff --git a/usb/device/CMakeLists.txt b/usb/device/CMakeLists.txt index 5e52510f6..b79d303c7 100644 --- a/usb/device/CMakeLists.txt +++ b/usb/device/CMakeLists.txt @@ -9,3 +9,4 @@ add_subdirectory(${PICO_TINYUSB_PATH}/examples/device tinyusb_device_examples) add_subdirectory_exclude_platforms(dev_hid_composite) add_subdirectory_exclude_platforms(dev_lowlevel) add_subdirectory_exclude_platforms(dev_multi_cdc) +add_subdirectory_exclude_platforms(dev_picotool_reset) diff --git a/usb/device/dev_picotool_reset/CMakeLists.txt b/usb/device/dev_picotool_reset/CMakeLists.txt new file mode 100644 index 000000000..dec0b15a1 --- /dev/null +++ b/usb/device/dev_picotool_reset/CMakeLists.txt @@ -0,0 +1,25 @@ +if (TARGET tinyusb_device) + add_executable(picotool_reset + picotool_reset.c + ) + + target_compile_definitions(picotool_reset PRIVATE + PICO_STDIO_USB_ENABLE_RESET_VIA_VENDOR_INTERFACE=1 + PICO_STDIO_USB_RESET_INTERFACE_SUPPORT_MS_OS_20_DESCRIPTOR=1 + ) + + # pull in common dependencies + target_link_libraries(picotool_reset pico_stdlib) + + # enable usb interface, disable uart output + pico_enable_stdio_usb(picotool_reset 1) + pico_enable_stdio_uart(picotool_reset 0) + + # create map/bin/hex/uf2 file etc. + pico_add_extra_outputs(picotool_reset) + + # add url via pico_set_program_url + example_auto_set_url(picotool_reset) +elseif(PICO_ON_DEVICE) + message("Skipping picotool_reset because TinyUSB submodule is not initialized in the SDK") +endif() diff --git a/usb/device/dev_picotool_reset/picotool_reset.c b/usb/device/dev_picotool_reset/picotool_reset.c new file mode 100644 index 000000000..9e5b5844f --- /dev/null +++ b/usb/device/dev_picotool_reset/picotool_reset.c @@ -0,0 +1,15 @@ +/** + * Copyright (c) 2020 Raspberry Pi (Trading) Ltd. + * Copyright (c) 2025 Framework Computer Inc + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#include "pico/stdlib.h" + +int main() { + stdio_init_all(); + + // Don't exit, wait for control transfer + while (true) {} +}