[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:
|
class FlashDownloader:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.port = None
|
self.port = None
|
||||||
self.baudrate = 2000000 # 默认2Mbps
|
self.baudrate = 750000 # 默认750Kbps
|
||||||
self.filename = None
|
self.filename = None
|
||||||
self.address = 0x00010000 # 默认地址
|
self.address = 0x00010000 # 默认地址
|
||||||
self.check = False
|
self.check = False
|
||||||
@ -18,7 +18,7 @@ class FlashDownloader:
|
|||||||
def parse_arguments(self):
|
def parse_arguments(self):
|
||||||
parser = argparse.ArgumentParser(description='UART Flash Downloader')
|
parser = argparse.ArgumentParser(description='UART Flash Downloader')
|
||||||
parser.add_argument('--COMX', required=True, help='COM port (e.g. COM3)')
|
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('--file', help='File to download')
|
||||||
parser.add_argument('--ADDR', type=lambda x: int(x, 0), help='Download address (hex/dec)')
|
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')
|
parser.add_argument('--CHECK', action='store_true', help='Enable readback verification')
|
||||||
@ -64,8 +64,11 @@ class FlashDownloader:
|
|||||||
self.ser.dtr = False # DTR拉高
|
self.ser.dtr = False # DTR拉高
|
||||||
time.sleep(0.1) # 等待100ms
|
time.sleep(0.1) # 等待100ms
|
||||||
self.ser.rts = False # RTS拉高
|
self.ser.rts = False # RTS拉高
|
||||||
time.sleep(0.1) # 等待100ms
|
# time.sleep(0.5) # 等待500ms
|
||||||
print("Pre-erase signals set")
|
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):
|
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}")
|
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 (擦除足够的空间)
|
# 擦除Flash (擦除足够的空间)
|
||||||
erase_size = ((len(file_data) + 4095) // 4096) * 4096 # 假设擦除块大小为4KB
|
erase_size = ((len(file_data) + 4095) // 4096) * 4096 # 假设擦除块大小为4KB
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user