如何检索ESP8266中烧写的二进制文件

问题描述 投票:0回答:5

我能够刷新大约 6 个月前交叉编译的 micropython 二进制文件,并且运行良好。它是在那时从 master 分支构建的,我没有保存代码,也没有保存二进制文件。

今天,当我再次编译时,二进制文件在某个时刻出现了问题。所以我想恢复到旧的二进制文件,唯一的问题是我不确定大约 6 个月前创建工作正常的编译二进制文件时 master 的 commitID/build 是什么。

我确实有一个 ESP,其中包含了该二进制文件。所以我在想是否有办法从 ESP 检索二进制文件?

请告诉我是否可以通过 ampy 等以某种方式完成此操作。 或者建议我一些解决方法。我已经在尝试找出当时的大致提交,并将再次交叉编译,我不确定这是否会按预期工作。

esp8266 micropython flashing
5个回答
4
投票

无论您将哪个固件加载到 ESP8266 模块(NodeMCU、MicroPython、Arduino 等),您都可以使用 esptool.py

 将闪存内容转储到文件中,如下所示:

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

read_flash

 是命令,
0x200000
 是内存上限 (2MB) 的参数。


1
投票
用于读取 BIN 文件形式的固件 要将固件读取为 BIN 文件,您需要首先将正确的 FTDI 与 IR 模块上的引脚连接

FTDI转IR模块如下

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 并且提取 bin 的名称是 flash-contents,否则您将其替换为匹配您的 COM 和您想要的名称) – 重要的是波特率为 9600

esptool.py -p COM5 -b 9600 read_flash 0 0x200000 flash_contents.bin
下面是我的结果(在 Windows 11 上的 python 3.10.2 下运行):

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

 的 1MB 内存下运行良好,就像在我的 IR 模块中一样


0
投票
我降低了读取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.bin esptool.py v3.0-dev Serial port COM6 Connecting.... Detecting chip type... ESP8266 Chip is ESP8266EX Features: WiFi Crystal is 26MHz MAC: 2c:3a:e8:42:b9:f7 Uploading stub... Running stub... Stub running... 4194304 (100 %) 4194304 (100 %) Read 4194304 bytes at 0x0 in 937.7 seconds (35.8 kbit/s)... Hard resetting via RTS pin...
    

0
投票
大家好,今天有一个惊喜...我刚刚打开了一个 esp8266 esp 12e 并在编程器中读取 flash.. 16mb....在我尝试使用 phyton esp 工具读取后...16 mb 到...而不是 4mb 怎么样放入数据表....所以为了完整备份....仅限程序员....也会有很多敏感信息...ssid...wifi密码...帐户密码也输入..所以对于仅完整备份硬件..


0
投票
按照以下步骤从芯片中取出备份箱。 视频教程:

https://youtu.be/5Ld39YWNh7Y

© www.soinside.com 2019 - 2024. All rights reserved.