4 Commits
Author SHA1 Message Date
khristolyubov 442d04713a вместо паузы опрос при старте
в некоторых случаях пауза перед опросом оказывается не эффективной, происходил срыв загрузки hex. Теперь перед стартом загрузки посылаем ни к чему не обязывающую комманду
2024-08-19 22:26:39 +07:00
Elron LLC 7569ae4313 Update README.md 2024-07-15 18:25:56 +07:00
Elron LLC 30a13a78c8 Update README.md 2024-07-15 17:28:28 +07:00
Elron LLC 46852b98ef Update README.md 2024-07-15 17:28:10 +07:00
3 changed files with 18 additions and 4 deletions

No files matched your search

+3 -2
View File
@@ -1,2 +1,3 @@
# elbear_uploader # elbear_uploader
Скрипт программирования памяти MIK32 Скрипт программирования памяти MIK32 Амур платы ELBEAR ACE-UNO.
Загрузчик построчно отправляет указанный при вызове hex-файл прошивки в заданный com-порт. При этом парсинг команд осуществляется на стороне микроконтроллера. Для ускорения процесса прошивки скрипт позволяет при помощи map-файла вырезать из отправляемого hex-файла команды записи данных в неиспользуемую область памяти перед некэшируемой областью. Полный набор опций доступен в справке при запуске скрипта с опцией –-help.
+15 -2
View File
@@ -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
View File
Binary file not shown.