Как получить перепрограммированный бинарный файл в ESP8266

Мне удалось прошить двоичный файл с микропифонами, который я скомпилировал около 6 месяцев назад, и он работал нормально. В то время он был построен из основной ветки, и я не сохранил ни код, ни двоичный файл.

Сегодня, когда я снова скомпилировал, у двоичного файла возникла проблема. Итак, я хочу вернуться к старому двоичному файлу, единственная проблема в том, что я не уверен, в каком commitID/build находился мастер в тот момент ~6 месяцев назад, когда был создан мой скомпилированный двоичный файл, который работает нормально.

У меня есть ESP, в который вставлен этот двоичный файл. Итак, я подумал, есть ли способ извлечь двоичный файл из ESP?

Пожалуйста, дайте мне знать, если это можно сделать как-нибудь через ampy и т. Д. Или предложите мне какое-нибудь решение. Я уже пытаюсь выяснить примерный коммит в это время, и буду снова кросс-компилировать, что, я не уверен, сработает ли так, как ожидалось.

4 ответа

Независимо от того, какую прошивку вы загрузили в свой модуль ESP8266 (NodeMCU, MicroPython, Arduino и т. Д.), Вы можете использовать esptool.py выгрузить флэш-контент в файл примерно так:

./esptool.py -p PORT -b 460800 read_flash 0 0x200000 flash_contents.bin

read_flash это команда, 0x200000 аргумент для верхней границы памяти (2 МБ).

Для чтения прошивки в виде BIN-файла Для чтения прошивки в виде BIN-файла вам необходимо ПЕРВЫМ правильно соединить FTDI с контактами на ИК-модуле.

FTDI к ИК-модулю следующим образом

      FTDI 3.3 V    to  IR 3.3 V,
FTDI GND      to  IR GND,
FTDI GND      to  IR IO0 (flash mode - IMPORTANT otherwise it will not work),
FTDI RX       to  IR TXD,
FTDI TX       to  IR RXD

Затем запустите команду (если COM-порт равен 5, а имя для извлечения корзины — flash-contents, в противном случае вы замените их, чтобы они соответствовали вашему COM и имени, которое вы хотите иметь) — важно, чтобы скорость передачи данных была 9600

      esptool.py -p COM5 -b 9600 read_flash 0 0x200000 flash_contents.bin

Ниже приведен результат для меня (работает под python 3.10.2 в Windows 11):

        PS F:\> esptool.py -p COM5 -b 9600 read_flash 0 0x200000 flash_contents.bin
  esptool.py v3.2
  Serial port COM5
  Connecting....
  Detecting chip type... Unsupported detection protocol, switching and trying 
  again...
  Connecting...
  Detecting chip type... ESP8266
  Chip is ESP8266EX
  Features: WiFi
  Crystal is 26MHz
  MAC: 10:52:1c:f8:b7:c7
  Stub is already running. No upload is necessary.
 2097152 (100 %)
 2097152 (100 %)
 Read 2097152 bytes at 0x0 in 2215.2 seconds (7.6 kbit/s)...
 Hard resetting via RTS pin...
 PS F:\>

Помните esptool.py -p COM5 -b 9600 read_flash 0 0x200000 flash_contents.binэто для 2MB памяти

но это хорошо работает с esptool.py -p COM5 -b 9600 read_flash 0 0x100000 flash_contents.binза 1 МБ памяти, как это было в моем ИК-модуле

привет, ребята, сегодня один сюрприз... я только что открыл один esp8266 esp 12e и прочитал флэш-память в программаторе.. 16 МБ.... после того, как я попытался прочитать с помощью инструмента phyton esp... от 16 МБ до... а не 4 МБ, как это поставить в таблице данных.... так что для полного резервного копирования.... только для программиста.... там тоже будет много конфиденциальной информации... ssid... пароли Wi-Fi... пароли учетных записей тоже вводятся... так что для полного только резервное оборудование..

Снизил скорость чтения флеш памяти своего esp8266 460800 на "46080" взял ноль. и успешный

Моя система - windows 10

C:\Users\POSITIVO\Downloads\esptool-master\esptool-master>esptool.py -p COM6 -b 46080 read_flash 0 0x400000 flash_contents3.binesptool.py v3.0-dev Последовательный порт COM6 Подключение.... Обнаружение чипа тип... ESP8266 Чип - ESP8266EX Характеристики: Wi-Fi Crystal - 26 МГц MAC: 2c:3a:e8:42:b9:f7 Загрузка заглушки... Работает заглушка... Заглушка работает... %) Прочитать 4194304 байта по адресу 0x0 за 937,7 секунд (35,8 кбит / с)... Аппаратный сброс через вывод RTS...

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