[update] use 750Kbps as download speed and add shakehand before download
This commit is contained in:
parent
38dec013f8
commit
3771df2093
@ -9,7 +9,7 @@ from pathlib import Path
|
||||
class FlashDownloader:
|
||||
def __init__(self):
|
||||
self.port = None
|
||||
self.baudrate = 2000000 # 默认2Mbps
|
||||
self.baudrate = 750000 # 默认750Kbps
|
||||
self.filename = None
|
||||
self.address = 0x00010000 # 默认地址
|
||||
self.check = False
|
||||
@ -18,7 +18,7 @@ class FlashDownloader:
|
||||
def parse_arguments(self):
|
||||
parser = argparse.ArgumentParser(description='UART Flash Downloader')
|
||||
parser.add_argument('--COMX', required=True, help='COM port (e.g. COM3)')
|
||||
parser.add_argument('--BAUDRATE', type=int, help='Baud rate (default: 2000000)')
|
||||
parser.add_argument('--BAUDRATE', type=int, help='Baud rate (default: 750000)')
|
||||
parser.add_argument('--file', help='File to download')
|
||||
parser.add_argument('--ADDR', type=lambda x: int(x, 0), help='Download address (hex/dec)')
|
||||
parser.add_argument('--CHECK', action='store_true', help='Enable readback verification')
|
||||
@ -64,8 +64,11 @@ class FlashDownloader:
|
||||
self.ser.dtr = False # DTR拉高
|
||||
time.sleep(0.1) # 等待100ms
|
||||
self.ser.rts = False # RTS拉高
|
||||
time.sleep(0.1) # 等待100ms
|
||||
# time.sleep(0.5) # 等待500ms
|
||||
print("Pre-erase signals set")
|
||||
shakehand = self.ser.read(4)
|
||||
print("shakehand=", shakehand)
|
||||
return shakehand == b'\x55\x55\x55\x55'
|
||||
|
||||
def control_signals_post_download(self):
|
||||
"""下载完成后的信号控制"""
|
||||
@ -236,7 +239,9 @@ class FlashDownloader:
|
||||
print(f"Preparing to download {len(file_data)} bytes from {self.filename} to 0x{self.address:08X}")
|
||||
|
||||
# 擦除前的信号控制
|
||||
self.control_signals_pre_erase()
|
||||
if not self.control_signals_pre_erase():
|
||||
print("shake hands failed")
|
||||
sys.exit(1)
|
||||
|
||||
# 擦除Flash (擦除足够的空间)
|
||||
erase_size = ((len(file_data) + 4095) // 4096) * 4096 # 假设擦除块大小为4KB
|
||||
|
||||
Loading…
Reference in New Issue
Block a user