Tools: IDF Monitor should flash with the unmodified port

Closes https://github.com/espressif/esp-idf/issues/8432
This commit is contained in:
Roland Dobai 2022-02-22 18:26:21 +01:00
parent d503c23d7a
commit 95eb9626a4

View File

@ -938,19 +938,22 @@ def main():
args = parser.parse_args()
# The port name is changed in cases described in the following lines. Use a local argument and
# avoid the modification of args.port.
port = args.port
# GDB uses CreateFile to open COM port, which requires the COM name to be r'\\.\COMx' if the COM
# number is larger than 10
if os.name == 'nt' and args.port.startswith("COM"):
args.port = args.port.replace('COM', r'\\.\COM')
if os.name == 'nt' and port.startswith("COM"):
port = port.replace('COM', r'\\.\COM')
yellow_print("--- WARNING: GDB cannot open serial ports accessed as COMx")
yellow_print("--- Using %s instead..." % args.port)
elif args.port.startswith("/dev/tty."):
args.port = args.port.replace("/dev/tty.", "/dev/cu.")
yellow_print("--- Using %s instead..." % port)
elif port.startswith("/dev/tty."):
port = port.replace("/dev/tty.", "/dev/cu.")
yellow_print("--- WARNING: Serial ports accessed as /dev/tty.* will hang gdb if launched.")
yellow_print("--- Using %s instead..." % args.port)
yellow_print("--- Using %s instead..." % port)
serial_instance = serial.serial_for_url(args.port, args.baud,
do_not_open=True)
serial_instance = serial.serial_for_url(port, args.baud, do_not_open=True)
serial_instance.dtr = False
serial_instance.rts = False
@ -967,8 +970,10 @@ def main():
except KeyError:
pass # not running a make jobserver
# Pass the actual used port to callee of idf_monitor (e.g. make) through `ESPPORT` environment
# variable
# Pass the actual used port to callee of idf_monitor (e.g. idf.py/cmake) through `ESPPORT` environment
# variable.
# Note that the port must be original port argument without any replacement done in IDF Monitor (idf.py
# has a check for this).
# To make sure the key as well as the value are str type, by the requirements of subprocess
espport_key = str("ESPPORT")
espport_val = str(args.port)