加入手动复位支持
This commit is contained in:
26
hc32flash.py
26
hc32flash.py
@@ -229,7 +229,7 @@ class SerialTransport():
|
||||
self.serial.rts = True
|
||||
self.serial.dtr = True
|
||||
time.sleep(0.5)
|
||||
self.write(b'\x18\xFF'*10, flush=False)
|
||||
self.write(b'\x18\xFF'*100, flush=False)
|
||||
self.serial.rts = False
|
||||
self.serial.dtr = False
|
||||
self.write(b'\x18\xFF'*10, flush=False)
|
||||
@@ -242,6 +242,17 @@ class SerialTransport():
|
||||
return True
|
||||
return False
|
||||
|
||||
def wait_bootloader(self):
|
||||
for x in range(10):
|
||||
self.write(b'\x18\xFF'*50, flush=False)
|
||||
time.sleep(0.1)
|
||||
if self.serial.in_waiting:
|
||||
ack = self.read(self.serial.in_waiting)
|
||||
if ack[-3:] == b'\x11'*3:
|
||||
self.serial.flushInput()
|
||||
return True
|
||||
return False
|
||||
|
||||
def check_lock(self):
|
||||
self.write(b'\x01\xFC\x0B\x00\x00\x02\x00\x00\x00\x0A')
|
||||
ack = self.read(5)
|
||||
@@ -382,10 +393,21 @@ if __name__ == '__main__':
|
||||
sys.stdout.write("Stage 1. Goto bootloader: ")
|
||||
sys.stdout.flush()
|
||||
_err = 0
|
||||
while not transport.goto_bootloader():
|
||||
if not args.goboot: # 需手动进入复位
|
||||
sys.stdout.write("wait press reset key ")
|
||||
sys.stdout.flush()
|
||||
while not transport.wait_bootloader():
|
||||
sys.stdout.write(".")
|
||||
sys.stdout.flush()
|
||||
_err += 1
|
||||
if _err > 30: # 等待最多30s
|
||||
sys.stdout.write("error\n")
|
||||
sys.exit(1)
|
||||
# 使用控制脚自动进入复位
|
||||
while not transport.goto_bootloader():
|
||||
sys.stdout.write("+")
|
||||
sys.stdout.flush()
|
||||
_err += 1
|
||||
if _err > (args.goboot and 30 or 0):
|
||||
sys.stdout.write("error\n")
|
||||
sys.exit(1)
|
||||
|
||||
Reference in New Issue
Block a user