forked from espressif/esp-idf
Merge branch 'fix/usb-serial-jtag-hangs-on-init_v5.2' into 'release/v5.2'
fix(console): USB Serial JTAG freezes when input received before the driver is installed (v5.2) See merge request espressif/esp-idf!31821
This commit is contained in:
@@ -1076,9 +1076,9 @@ int linenoiseProbe(void) {
|
|||||||
if (cb < 0) {
|
if (cb < 0) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (read_bytes == 0 && c != '\x1b') {
|
if (read_bytes == 0 && c != ESC) {
|
||||||
/* invalid response */
|
/* invalid response, try again until the timeout triggers */
|
||||||
break;
|
continue;
|
||||||
}
|
}
|
||||||
read_bytes += cb;
|
read_bytes += cb;
|
||||||
}
|
}
|
||||||
|
@@ -192,10 +192,14 @@ esp_err_t usb_serial_jtag_driver_install(usb_serial_jtag_driver_config_t *usb_se
|
|||||||
usb_serial_jtag_ll_phy_set_defaults(); // External PHY not supported. Set default values.
|
usb_serial_jtag_ll_phy_set_defaults(); // External PHY not supported. Set default values.
|
||||||
#endif // USB_WRAP_LL_EXT_PHY_SUPPORTED
|
#endif // USB_WRAP_LL_EXT_PHY_SUPPORTED
|
||||||
|
|
||||||
usb_serial_jtag_ll_clr_intsts_mask(USB_SERIAL_JTAG_INTR_SERIAL_IN_EMPTY|
|
// Note: DO NOT clear the interrupt status bits here. The output routine needs
|
||||||
USB_SERIAL_JTAG_INTR_SERIAL_OUT_RECV_PKT);
|
// USB_SERIAL_JTAG_INTR_SERIAL_IN_EMPTY set because it needs the ISR to trigger
|
||||||
usb_serial_jtag_ll_ena_intr_mask(USB_SERIAL_JTAG_INTR_SERIAL_IN_EMPTY|
|
// as soon as data is sent; the input routine needs the status to retrieve any
|
||||||
USB_SERIAL_JTAG_INTR_SERIAL_OUT_RECV_PKT);
|
// data that is still in the FIFOs.
|
||||||
|
|
||||||
|
// We only enable the RX interrupt; we'll enable the TX one when we actually
|
||||||
|
// have anything to send.
|
||||||
|
usb_serial_jtag_ll_ena_intr_mask(USB_SERIAL_JTAG_INTR_SERIAL_OUT_RECV_PKT);
|
||||||
|
|
||||||
err = esp_intr_alloc(ETS_USB_SERIAL_JTAG_INTR_SOURCE, 0, usb_serial_jtag_isr_handler_default, NULL, &p_usb_serial_jtag_obj->intr_handle);
|
err = esp_intr_alloc(ETS_USB_SERIAL_JTAG_INTR_SOURCE, 0, usb_serial_jtag_isr_handler_default, NULL, &p_usb_serial_jtag_obj->intr_handle);
|
||||||
if (err != ESP_OK) {
|
if (err != ESP_OK) {
|
||||||
|
Reference in New Issue
Block a user