• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

ESP_HexFlasher - приложение для прошивки ESP8266

espprog

New member
ESP_HexFlasher это приложение позволяющие прошивать в ESP8266 прошивки в формате Intel hex. Такая прошивка состоит из одного файла с расширением hex, содержащего в себе все данные. Это намного удобнее чем в случае нескольких bin файлов, которые можно по ошибке прошить не по тем адресам что следует или некоторые из них забыть прошить. Обычно такая путаница возникает у начинающих. Формат hex свободен от этих недостатков.
Для примера AT прошивка и Blink в виде HEX файлов в архиве HEX.zip. Собраны в этой IDE.
Скриншоты приложения ESP_HexFlasher
Windows


Linux


MacOS X

Окошко "Очистить память" предназначено для записи данных по умолчанию в системные области флеш-памяти.
Это может понадобится если ESP8266 не работает, а в UART отправляет что-то похожее на это.
Код:
ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x40100000, len 30372, room 16
tail 4
chksum 0x05
load 0x3ffe8000, len 2008, room 4
tail 4
chksum 0x62
load 0x3ffe87e0, len 580, room 4
tail 0
chksum 0xa3
csum 0xa3
OS SDK ver: 2.0.0(e271380) compiled @ Mar 30 2018 18:54:06
rf_cal[0] !=0x05,is 0xFF
 

Вложения

tretyakov_sa

Moderator
Команда форума
Как перевести bin в hex. Стоит в программу добавить такую возможность. Так же оставить возможность шить из bin формата. Ну и читать в bin из esp тоже бы не помешало.
 

espprog

New member
Из bin в hex автоматически перевести не получится, как это можно сделать переводя с hex в bin (кнопка Экспорт). В bin файлах не хранятся адреса и нет информации о начальном адресе (entry point).
Hex файл можно создать из elf (иногда у него расширение out).
Код:
objcopy.exe -O ihex file.elf file.hex
objcopy.exe входит в состав GCC для ESP.

Ну и читать в bin из esp тоже бы не помешало.
Стандартный загрузчик ESP8266 не поддерживает чтение.
 

tretyakov_sa

Moderator
Команда форума
Из bin в hex автоматически перевести не получится, как это можно сделать переводя с hex в bin (кнопка Экспорт). В bin файлах не хранятся адреса и нет информации о начальном адресе (entry point).
Так и сделайте дополнительную вкладку с выбором файлов и установкой адресов. После этого либо загрузить в esp либо сохранить в hex. Так сказать вкладка эксперта :)
 

fps

Active member
На скриноштах 1 и 2 в логе прошивка успешно "завешивается" :)

Скорость порта измеряется не в 'бод' а в 'бит/с'
 

espprog

New member
Скорость порта измеряется не в 'бод' а в 'бит/с'
В бодах https://ru.wikipedia.org/wiki/RS-232

tretyakov_sa, esptool заливает в ОЗУ ESP8266 программный загрузчик https://github.com/espressif/esptool/wiki/Serial-Protocol
Посмотрите список доступных команд в таблице Supported by software loader and ROM loaders
Команда READ_FLASH есть только в software loader.

На скриноштах 1 и 2 в логе прошивка успешно "завешивается"
Точно.
Чуть позже исправлю ошибку и пересоберу под все платформы.
 

espprog

New member
Исправил ошибку.
Windows
Winows.png

Linux
Linux.png

MacOS X
Mac OS X.png
Anim.gif
 

Вложения

pvvx

Активный участник сообщества
В русскоязычной вики это часто.
Как раз там всё в норме.
в бодах выражают полную ёмкость канала, включая служебные символы (биты), если они есть.
1. В данном случае тут нет никаких стандартов RS-232 по многим параметрам. UART, как 'Последовательный порт' есть, а RS-232 нет.
2. Стандарт RS-232 не определяет скорости передачи битов, за исключением того, что в нем говорится, что они предназначены для скоростей передачи данных ниже 20 000 бит в секунду. Стандарт RS-232 определяет уровни напряжения, которые соответствуют уровням логической единицы и логического нуля для линий передачи данных и сигналов управления.
 

pvvx

Активный участник сообщества
Там чушь написана. В русскоязычной вики это часто. См. оригинал https://en.wikipedia.org/wiki/RS-232
Не забывайте главного – технический язык, это специализированный вариант естественного языка. Но не все языки годятся как технические, особенно для описания в таких науках как физика, что более близка к радио-электротехнике. Русский и немецкий язык годится для технических описаний и имеет большее количество уточняющих слов и сочетаний, как и слов описывающих подгруппы с малыми отличиями. Английский технический – это урезанный упрощенный сборник из разных естественных языков. Остальные бытующие языки малопригодны и созданы ради усложнения понимания и не могут точно описывать уточненные и множественные варианты. В техническом английском более часто одно значение слова обозначает совершенно разные вещи и описания в нем неточны, без большого контекста с уточнением.
 

fps

Active member
Не забывайте главного – технический язык, это специализированный вариант естественного языка. Но не все языки годятся как технические..
Да я не спорю с этим всем )
Но в данном случае у espprog просто неправильно подписан контрол. О чём я ему и сказал.
 

espprog

New member
Но в данном случае у @espprog просто неправильно подписан контрол.
Все верно подписано. https://ru.wikipedia.org/wiki/Универсальный_асинхронный_приёмопередатчик
Существует общепринятый ряд стандартных скоростей: 300; 600; 1200; 2400; 4800; 9600; 19200; 38400; 57600; 115200; 230400; 460800; 921600 бод. Скорость (S , бод) и длительность бита (T , секунд) связаны соотношением T = 1 / S . Скорость в бодах иногда называют сленговым словом бодрейт или битрейт.
Поскольку синхронизирующие биты занимают часть битового потока, то результирующая пропускная способность UART меньше скорости соединения. Например, для 8-битных посылок формата 8-N-1 синхронизирующие биты занимают 20 % потока, что при физической скорости линии 115 200 бод означает полезную скорость передачи данных 92 160 бит/с или 11 520 байт/с.
 

Audis

New member
Скажите как пользоватся кнопкой Экспорт? Как понимаю она для чтения?
И возможно ли этой софтиной прочитать ESP32?
 

espprog

New member
Кнопка Экспорт конвертирует hex файл в bin файлы для прошивки другими утилитами.
 
Сверху Снизу