mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
3254f8deae
Previously, reset over USB CDC was done by calling esp_restart from an interrupt handler. This works only until some restart hook function is registered using esp_register_shutdown_handler, and the hook function tries to do something that isn’t allowed in an interrupt handler. One such case is with Wi-Fi. When Wi-Fi driver is installed, it registers esp_wifi_stop as a shutdown handler function. However esp_wifi_stop cannot be called from an ISR, and hence we shouldn’t call esp_restart from an ISR either. This commit modifies USB CDC driver to call esp_restart by posting it to esp_timer task. Closes https://github.com/espressif/esp-idf/issues/7404
33 lines
1.2 KiB
Plaintext
33 lines
1.2 KiB
Plaintext
[mapping:esp_system]
|
|
archive: libesp_system.a
|
|
entries:
|
|
if ESP_PANIC_HANDLER_IRAM = y:
|
|
panic (noflash)
|
|
panic_handler (noflash)
|
|
panic_arch (noflash)
|
|
|
|
esp_err (noflash)
|
|
esp_system:esp_system_abort (noflash)
|
|
ubsan (noflash)
|
|
|
|
if ESP_CONSOLE_USB_CDC_SUPPORT_ETS_PRINTF:
|
|
usb_console:esp_usb_console_write_char (noflash)
|
|
usb_console:esp_usb_console_write_buf (noflash)
|
|
usb_console:esp_usb_console_flush_internal (noflash)
|
|
usb_console:esp_usb_console_osglue_wait_proc (noflash)
|
|
usb_console:esp_usb_console_osglue_dis_int (noflash)
|
|
usb_console:esp_usb_console_osglue_ena_int (noflash)
|
|
usb_console:esp_usb_console_interrupt (noflash)
|
|
usb_console:esp_usb_console_poll_interrupts (noflash)
|
|
usb_console:esp_usb_console_cdc_acm_cb (noflash)
|
|
usb_console:esp_usb_console_dfu_detach_cb (noflash)
|
|
usb_console:esp_usb_console_before_restart (noflash)
|
|
usb_console:esp_usb_console_on_restart_timeout (noflash)
|
|
|
|
[mapping:vfs_cdcacm]
|
|
archive: libvfs.a
|
|
entries:
|
|
if ESP_CONSOLE_USB_CDC_SUPPORT_ETS_PRINTF:
|
|
vfs_cdcacm:cdcacm_tx_cb (noflash)
|
|
vfs_cdcacm:cdcacm_rx_cb (noflash)
|