Merge branch 'bugfix/idf_monitor_usbser_sys' into 'master'
tools: work around usbser.sys bug in IDF monitor Closes IDFGH-2592 See merge request espressif/esp-idf!7460
This commit is contained in:
commit
ce7af82e05
1 changed files with 5 additions and 0 deletions
|
@ -355,6 +355,7 @@ class SerialReader(StoppableThread):
|
||||||
self.serial.rts = True # Force an RTS reset on open
|
self.serial.rts = True # Force an RTS reset on open
|
||||||
self.serial.open()
|
self.serial.open()
|
||||||
self.serial.rts = False
|
self.serial.rts = False
|
||||||
|
self.serial.dtr = self.serial.dtr # usbser.sys workaround
|
||||||
try:
|
try:
|
||||||
while self.alive:
|
while self.alive:
|
||||||
data = self.serial.read(self.serial.in_waiting or 1)
|
data = self.serial.read(self.serial.in_waiting or 1)
|
||||||
|
@ -741,8 +742,10 @@ class Monitor(object):
|
||||||
self.serial_reader.stop()
|
self.serial_reader.stop()
|
||||||
elif cmd == CMD_RESET:
|
elif cmd == CMD_RESET:
|
||||||
self.serial.setRTS(True)
|
self.serial.setRTS(True)
|
||||||
|
self.serial.setDTR(self.serial.dtr) # usbser.sys workaround
|
||||||
time.sleep(0.2)
|
time.sleep(0.2)
|
||||||
self.serial.setRTS(False)
|
self.serial.setRTS(False)
|
||||||
|
self.serial.setDTR(self.serial.dtr) # usbser.sys workaround
|
||||||
self.output_enable(True)
|
self.output_enable(True)
|
||||||
elif cmd == CMD_MAKE:
|
elif cmd == CMD_MAKE:
|
||||||
self.run_make("flash")
|
self.run_make("flash")
|
||||||
|
@ -755,9 +758,11 @@ class Monitor(object):
|
||||||
elif cmd == CMD_ENTER_BOOT:
|
elif cmd == CMD_ENTER_BOOT:
|
||||||
self.serial.setDTR(False) # IO0=HIGH
|
self.serial.setDTR(False) # IO0=HIGH
|
||||||
self.serial.setRTS(True) # EN=LOW, chip in reset
|
self.serial.setRTS(True) # EN=LOW, chip in reset
|
||||||
|
self.serial.setDTR(self.serial.dtr) # usbser.sys workaround
|
||||||
time.sleep(1.3) # timeouts taken from esptool.py, includes esp32r0 workaround. defaults: 0.1
|
time.sleep(1.3) # timeouts taken from esptool.py, includes esp32r0 workaround. defaults: 0.1
|
||||||
self.serial.setDTR(True) # IO0=LOW
|
self.serial.setDTR(True) # IO0=LOW
|
||||||
self.serial.setRTS(False) # EN=HIGH, chip out of reset
|
self.serial.setRTS(False) # EN=HIGH, chip out of reset
|
||||||
|
self.serial.setDTR(self.serial.dtr) # usbser.sys workaround
|
||||||
time.sleep(0.45) # timeouts taken from esptool.py, includes esp32r0 workaround. defaults: 0.05
|
time.sleep(0.45) # timeouts taken from esptool.py, includes esp32r0 workaround. defaults: 0.05
|
||||||
self.serial.setDTR(False) # IO0=HIGH, done
|
self.serial.setDTR(False) # IO0=HIGH, done
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in a new issue