Skip to content

Commit e1b6c20

Browse files
committed
Revert "Inline USB start/stop callback tasks"
This reverts commit 01ed893. Because starting file system within event loop failed: ``` ESP_ERROR_CHECK failed: esp_err_t 0x1 (ERROR) at 0x4037ab88 #0 0x4037ab88 in _esp_error_check_failed at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp_system/esp_err.c:42 file: "lib/storage/storage.cpp" line 117 func: void switchToApplicationMode() expression: FFat.begin() abort() was called at PC 0x4037ab8b on core 1 Backtrace: 0x403777ba:0x3fcf2100 0x4037ab95:0x3fcf2120 0x4038058d:0x3fcf2140 0x4037ab8b:0x3fcf21c0 0x42002afb:0x3fcf21e0 0x42002b15:0x3fcf2200 0x4205e6d5:0x3fcf2220 0x4205e754:0x3fcf2270 #0 0x403777ba in panic_abort at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp_system/panic.c:408 #1 0x4037ab95 in esp_system_abort at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp_system/esp_system.c:137 #2 0x4038058d in abort at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/newlib/abort.c:46 #3 0x4037ab8b in _esp_error_check_failed at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp_system/esp_err.c:43 #4 0x42002afb in switchToApplicationMode() at lib/storage/storage.cpp:117 (discriminator 1) #5 0x42002b15 in usbStoppedCallback(void*, char const*, int, void*) at lib/storage/storage.cpp:139 #6 0x4205e6d5 in handler_execute at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp_event/esp_event.c:145 (inlined by) esp_event_loop_run at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp_event/esp_event.c:598 #7 0x4205e754 in esp_event_loop_run_task at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp_event/esp_event.c:115 (discriminator 15) ```
1 parent 175e464 commit e1b6c20

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

lib/storage/storage.cpp

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,19 @@ static void switchToUSBMode()
128128
MSC.mediaPresent(true);
129129
}
130130

131+
static void usb_stopped_cb(void *const pvParameters)
132+
{
133+
switchToApplicationMode();
134+
listFiles("/");
135+
vTaskDelete(nullptr);
136+
}
137+
138+
static void usb_started_cb(void *const pvParameters)
139+
{
140+
switchToUSBMode();
141+
vTaskDelete(nullptr);
142+
}
143+
131144
static bool usbIsRunning = false;
132145
static void usbStoppedCallback(void *, esp_event_base_t, int32_t, void *)
133146
{
@@ -136,13 +149,12 @@ static void usbStoppedCallback(void *, esp_event_base_t, int32_t, void *)
136149
return;
137150
}
138151
usbIsRunning = false;
139-
switchToApplicationMode();
152+
xTaskCreate(usb_stopped_cb, "USB_Stopped_CB", 4096, nullptr, 5, nullptr);
140153
}
141-
142154
static void usbStartedCallback(void *, esp_event_base_t, int32_t, void *)
143155
{
144156
usbIsRunning = true;
145-
switchToUSBMode();
157+
xTaskCreate(usb_started_cb, "USB_Started_CB", 4096, nullptr, 5, nullptr);
146158
}
147159

148160
const esp_partition_t *check_ffat_partition(const char *label); // defined in FFat.cpp

0 commit comments

Comments
 (0)