вместо паузы опрос при старте

в некоторых случаях пауза перед опросом оказывается не эффективной, происходил срыв загрузки hex. Теперь перед стартом загрузки посылаем ни к чему не обязывающую комманду
This commit is contained in:
khristolyubov 2024-08-19 22:26:39 +07:00 committed by GitHub
parent 7569ae4313
commit 442d04713a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 18 additions and 5 deletions

View File

@ -1,3 +1,3 @@
# elbear_uploader
Скрипт программирования памяти MIK32 Амур платы ELBEAR ACE-UNO.
Загрузчик построчно отправляет указанный при вызове hex-файл прошивки в заданный com-порт. При этом парсинг команд осуществляется на стороне микроконтроллера. Для ускорения процесса прошивки скрипт позволяет при помощи map-файла вырезать из отправляемого hex-файла команды записи данных в неиспользуемую область памяти перед некэшируемой областью. Полный набор опций доступен в справке при запуске скрипта с опцией -help.
# elbear_uploader
Скрипт программирования памяти MIK32 Амур платы ELBEAR ACE-UNO.
Загрузчик построчно отправляет указанный при вызове hex-файл прошивки в заданный com-порт. При этом парсинг команд осуществляется на стороне микроконтроллера. Для ускорения процесса прошивки скрипт позволяет при помощи map-файла вырезать из отправляемого hex-файла команды записи данных в неиспользуемую область памяти перед некэшируемой областью. Полный набор опций доступен в справке при запуске скрипта с опцией -help.

View File

@ -1,6 +1,7 @@
import serial
import time
import argparse
from sys import exit
ACK = 0x0F # МК подтвердил 0b00001111
NACK = 0xF0 # МК отверг 0b11110000
@ -28,6 +29,7 @@ def cmd_package_size(package_size):
if int.from_bytes(read_byte, "big") == NACK:
print("NACK. COMMAND_PACKAGE_SIZE")
exit()
return read_byte == b'\x0f'
# Отправить пакет
def cmd_send_package(data_package):
@ -159,8 +161,19 @@ if namespace.hexpath:
i -= 1 # текущая строчка удалилась, следующая будет с тем же индексом
i += 1
ser = serial.Serial(port = namespace.com, baudrate = namespace.baudrate)
time.sleep(0.5) # Задержка чтобы успел выставиться RESET
ser = serial.Serial(port = namespace.com, baudrate = namespace.baudrate, timeout = 0.1)
ping = False
for i in range(10): # вместо задержки забрасываем запросами
ping = cmd_package_size(15)
if ping:
break
if ping:
print("Device connected")
else:
print("Device not responding")
exit()
if namespace.fullerase:
print('Erasing memory')

Binary file not shown.