From 807db2ccb21eb86d528849eb089ed3a34a6bb4a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?King=20K=C3=A9vin?= Date: Tue, 19 Jul 2022 15:23:36 +0200 Subject: [PATCH] dfu: add reboot call --- components/tinyusb_dfu/CMakeLists.txt | 1 + .../tinyusb_dfu/additions/src/tusb_dfu_rt.c | 32 +++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 components/tinyusb_dfu/additions/src/tusb_dfu_rt.c diff --git a/components/tinyusb_dfu/CMakeLists.txt b/components/tinyusb_dfu/CMakeLists.txt index 35fde67..4c8c554 100644 --- a/components/tinyusb_dfu/CMakeLists.txt +++ b/components/tinyusb_dfu/CMakeLists.txt @@ -69,6 +69,7 @@ if(CONFIG_TINYUSB_DFU) "additions/src/tusb_cdc_acm.c" "additions/src/tusb_console.c" "additions/src/vfs_tinyusb.c" + "additions/src/tusb_dfu_rt.c" ) endif() # CONFIG_TINYUSB_DFU_CDC_ENABLED endif() # CONFIG_TINYUSB_DFU diff --git a/components/tinyusb_dfu/additions/src/tusb_dfu_rt.c b/components/tinyusb_dfu/additions/src/tusb_dfu_rt.c new file mode 100644 index 0000000..b168c11 --- /dev/null +++ b/components/tinyusb_dfu/additions/src/tusb_dfu_rt.c @@ -0,0 +1,32 @@ +// Copyright 2022 King Kévin +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include +#include "esp_check.h" +#include "esp_err.h" +#include "esp_log.h" +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "tusb.h" +#include "sdkconfig.h" + +static const char *TAG = "tusb_usb_dfu"; + +/* TinyUSB callbacks */ + +// Invoked on DFU_DETACH request to reboot to the bootloader +void tud_dfu_runtime_reboot_to_dfu_cb(void) +{ + ESP_LOGI(TAG, "reboot"); +}