вместо паузы опрос при старте
в некоторых случаях пауза перед опросом оказывается не эффективной, происходил срыв загрузки hex. Теперь перед стартом загрузки посылаем ни к чему не обязывающую комманду
This commit is contained in:
parent
7569ae4313
commit
442d04713a
@ -1,3 +1,3 @@
|
|||||||
# elbear_uploader
|
# elbear_uploader
|
||||||
Скрипт программирования памяти MIK32 Амур платы ELBEAR ACE-UNO.
|
Скрипт программирования памяти MIK32 Амур платы ELBEAR ACE-UNO.
|
||||||
Загрузчик построчно отправляет указанный при вызове hex-файл прошивки в заданный com-порт. При этом парсинг команд осуществляется на стороне микроконтроллера. Для ускорения процесса прошивки скрипт позволяет при помощи map-файла вырезать из отправляемого hex-файла команды записи данных в неиспользуемую область памяти перед некэшируемой областью. Полный набор опций доступен в справке при запуске скрипта с опцией –-help.
|
Загрузчик построчно отправляет указанный при вызове hex-файл прошивки в заданный com-порт. При этом парсинг команд осуществляется на стороне микроконтроллера. Для ускорения процесса прошивки скрипт позволяет при помощи map-файла вырезать из отправляемого hex-файла команды записи данных в неиспользуемую область памяти перед некэшируемой областью. Полный набор опций доступен в справке при запуске скрипта с опцией –-help.
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
import serial
|
import serial
|
||||||
import time
|
import time
|
||||||
import argparse
|
import argparse
|
||||||
|
from sys import exit
|
||||||
|
|
||||||
ACK = 0x0F # МК подтвердил 0b00001111
|
ACK = 0x0F # МК подтвердил 0b00001111
|
||||||
NACK = 0xF0 # МК отверг 0b11110000
|
NACK = 0xF0 # МК отверг 0b11110000
|
||||||
@ -28,6 +29,7 @@ def cmd_package_size(package_size):
|
|||||||
if int.from_bytes(read_byte, "big") == NACK:
|
if int.from_bytes(read_byte, "big") == NACK:
|
||||||
print("NACK. COMMAND_PACKAGE_SIZE")
|
print("NACK. COMMAND_PACKAGE_SIZE")
|
||||||
exit()
|
exit()
|
||||||
|
return read_byte == b'\x0f'
|
||||||
|
|
||||||
# Отправить пакет
|
# Отправить пакет
|
||||||
def cmd_send_package(data_package):
|
def cmd_send_package(data_package):
|
||||||
@ -159,8 +161,19 @@ if namespace.hexpath:
|
|||||||
i -= 1 # текущая строчка удалилась, следующая будет с тем же индексом
|
i -= 1 # текущая строчка удалилась, следующая будет с тем же индексом
|
||||||
i += 1
|
i += 1
|
||||||
|
|
||||||
ser = serial.Serial(port = namespace.com, baudrate = namespace.baudrate)
|
ser = serial.Serial(port = namespace.com, baudrate = namespace.baudrate, timeout = 0.1)
|
||||||
time.sleep(0.5) # Задержка чтобы успел выставиться RESET
|
|
||||||
|
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:
|
if namespace.fullerase:
|
||||||
print('Erasing memory')
|
print('Erasing memory')
|
||||||
|
|||||||
BIN
requirements.txt
BIN
requirements.txt
Binary file not shown.
Loading…
Reference in New Issue
Block a user