Благодарю!
Собсвенно у меня стоит слегка другая задача: есть PIC контроллер который по UART соединён с ESP8266 и при этом управляет всеми его вывдоами (рст, чип_ен, гпио0 и т.д.). В тех задании прописано что пик_контролер должен уметь прошивать еспешку по уарту и при этом от пик контроллера требуется только (программисты его поленились) взять бинарный файл и странслировать его в уарт. и всё. поскольку .bin файлы которые генерирует esptool.py совсем не то что транслируется по уарту в загрузчик то по совету pvvx
Прошивка через терминал без программ прошивальщиков я решил или поискать готовый конвертер их 4х файлов прошивки для ESP (0x00000 0x10000 esp_init_data_default.bin и blank.bin) в один готовый для трансляции по уарту.
В программе FLASH_DOWNLOAD_TOOLS_V3.4.2_Win нашёл кнопочку CombineBin. вроде бы оно, то что нужно по посылка итогового файла по уарту ничего не дала.
Может есть где готовая программа конвертер или esptool.py может это сделать?
Здравствуйте!
Напрямую прошить файл будет очень проблематично и такой вариант (с большой вероятностью) будет нестабильно работать.
Вся суть прямой передачи сводится к следующему:
1. Взять несколько файлов прошивки (*.bin) и собрать из них один файл (можно попробовать через утилиту esptool.py). Нужно не забывать, что файлы пишутся по разным адресам. Или взять один готовый файл. В результате будем иметь один файл с чистой прошивкой для ESP модуля.
2. Что бы прошить данный файл необходимо выполнить некоторые манипуляции с самим модулем.
2.1 Перевести модуль в режим загрузчика.
2.2. Начать периодическую отправку специального синхронизирующего фрейма (данные фрейма не относятся к прошивке) и дожидаться подтверждения синхронизации. В большинстве случаев ответ приходит на вторую посылку фрейма.
2.3. После синхронизации необходимо выполнить настройку и предварительное стирание записываемых страниц.
3. Теперь можно посылать файл прошивки, инкапсулированный в SLIP протокол + не забывать добавлять заголовки к каждому фрейму.
4. После записи файла нужно отправить фрейм с командой запуска модуля (по желанию).
Исходя из выше написанного, что бы прошить файл напрямую, нужно взять бинарный файл и добавить к нему как минимум 2 синхронизирующих фрейма + разбить прошивку на пакеты с заголовками + всё обрамить в SLIP протокол. При таком раскладе сразу теряется надёжность + контроль за процессом прошивки, не говоря уже про подводные камни которые будут попадаться.
Для вашей ситуации предлагаю простой вариант. Взять готовую утилиту nodemcu-flasher (написана на Delphi, в интернете есть исходники, умеет прошивать несколько файлов) и дописать её для ваших нужд. Вам нужно будет добавить команды для управления вашим микроконтроллером (перевод модуля в режим загрузчика и т.д.) и отправку данных через ваш интерфейс. Проще говоря, предлагаю через ваш интерфейс связи ПК с ПИК передавать данные + команды, которые сформирует программа. Тогда не стоит беспокоиться о склейке файлов и их формированию. За вас всё сделает программа + будет контроль над процессом прошивки.