一、译文
1、esptool
esptool.py --port <USB-port-with-ESP8266> write_flash -fm <mode> -fs <size> 0x00000 <nodemcu-firmware>.bin(PS:笔者用的是nodemcu_flasher,所以对esptool的mode和size参数不甚了解)
2、NodeMCU Flasher
一个NodeMCU固件烧写工具。我们正在开发下一个版本并且将使用QT框架。它将支持跨平台和开源。3、将烧写模块放入设备
为了能够支持ESP8266固件烧写,在设备复位前GPIO0引脚电平必须下拉。相反,正常启动GPIO0引脚电平必须上拉或浮空。4、烧写哪些文件
- bin/0x00000.bin 文件烧写到地址 0x00000
- bin/0x10000.bin 文件烧写到地址 0x10000
Adafruit provides a really nice firmware flashing tutorial. Below you'll find just the basics for the two popular tools esptool and NodeMCU Flasher.
Note:
Keep in mind that the ESP8266 needs to be put into flash modebefore you can flash a new firmware!
esptool
A cute Python utility to communicate with the ROM bootloader in Espressif ESP8266. It is intended to be a simple, platform independent, open source replacement for XTCOM.
Source: https://github.com/themadinventor/esptool
Supported platforms: OS X, Linux, Windows, anything that runs Python
Running esptool.py
Run the following command to flash an aggregated binary as is produced for example by the cloud build service or the Docker image.
esptool.py --port <USB-port-with-ESP8266> write_flash -fm <mode> -fs <size> 0x00000 <nodemcu-firmware>.bin
modeisqiofor 512 kByte modules anddiofor 4 MByte modules (qiomight work as well, YMMV).sizeis given in bits. Specify4mfor 512 kByte and32mfor 4 MByte.
Check the esptool flash modes documentation for details and other options.
NodeMCU Flasher
A firmware Flash tool for NodeMCU...We are working on next version and will use QT framework. It will be cross platform and open-source.
Source: https://github.com/nodemcu/nodemcu-flasher
Supported platforms: Windows
Putting Device Into Flash Mode
To enable ESP8266 firmware flashing GPIO0 pin must be pulled low before the device is reset. Conversely, for a normal boot, GPIO0 must be pulled high or floating.
If you have a NodeMCU dev kit then you don't need to do anything, as the USB connection can pull GPIO0 low by asserting DTR and reset your board by asserting RTS.
If you have an ESP-01 or other device without built-in USB, you will need to enable flashing yourself by pulling GPIO0 low or pressing a "flash" switch.
Which Files To Flash
If you build your firmware with the cloud builder or the Docker image, or any other method that produces a combined binary, then you can flash that file directly to address 0x00000.
Otherwise, if you built your own firmware from source code:
bin/0x00000.binto 0x00000bin/0x10000.binto 0x10000
Also, in some special circumstances, you may need to flash blank.binor esp_init_data_default.bin to various addresses on the flash (depending on flash size and type), see below.
If upgrading from SPIFFS version 0.3.2 to 0.3.3 or later, or after flashing any new firmware (particularly one with a much different size), you may need to run file.format() to re-format your flash filesystem. You will know if you need to do this if your flash files disappeared, or if they exist but seem empty, or if data cannot be written to new files.
Upgrading from SDK 0.9.x Firmware
If you flash a recent NodeMCU firmware for the first time, it's advisable that you get all accompanying files right. A typical case that often fails is when a module is upgraded from a 0.9.x firmware to the latest version built from the NodeMCU build service. It might look like the brand new firmware is broken, but the reason for the missing Lua prompt is related to the big jump in SDK versions: Espressif changed the esp_init_data_default.bin for their devices along the way with the SDK 1.4.0 release. So things break when a NodeMCU firmware with SDK 1.4.0 or above is flashed to a module which contains old init data from a previous SDK.
Download a recent SDK release, e.g. esp_iot_sdk_v1.4.0_15_09_18.zipor later and extract esp_init_data_default.bin from there. Use this file together with the new firmware during flashing.
esptool
For esptool you specify another file to download at the command line.
esptool.py write_flash <flash options> 0x00000 <nodemcu-firmware>.bin 0x7c000 esp_init_data_default.bin
Note:
The address for esp_init_data_default.bin depends on the size of your module's flash. ESP-01, -03, -07 etc. with 512 kByte flash require 0x7c000. Init data goes to 0x3fc000 on an ESP-12E with 4 MByte flash.
NodeMCU Flasher
The NodeMCU Flasher will download init data using a special path:
INTERNAL://DEFAULT
Replace the provided (old) esp_init_data_default.bin with the one extracted above and use the flasher like you're used to.
References

本文介绍ESP8266模块的固件烧写方法,涵盖esptool和NodeMCU Flasher两种工具的使用。esptool为Python工具,支持多种平台;NodeMCU Flasher则专注于Windows平台。文章还详细解释了如何将设备置于烧写模式及不同情况下所需烧写的文件。
269

被折叠的 条评论
为什么被折叠?



