ESP FLASH TOOL 的官方下載地址爲: http://www.espressif.com/sites/default/files/tools/flash_download_tools_v3.4.9.2_1.zip
燒寫工具說明 http://bbs.espressif.com/viewtopic.php?f=5&t=433
燒寫前請參考如何安裝安信可一體化開發環境完成 sdk 的編譯
或者在 ESP8266 最新SDK發佈 或 ESP32 最新SDK發佈 頁面下載最新固件
硬件連接
ESP8266有運行模式、下載模式、測試模式的區別,進入下載模式可參考以下配置:
模式 | CH_PD(EN) | RST | GPIO15 | GPIO0 | GPIO2 | TXD0 |
---|---|---|---|---|---|---|
UART 下載模式 | 高 | 高 | 低 | 低 | 高 | 高 |
Flash 運行模式 | 高 | 高 | 低 | 高 | 高 | 高 |
Chip 測試模式 | - | - | - | - | - | 低 |
ESP32 的運行狀態主要由 GPIO0 決定
模式 | GPIO0 |
---|---|
UART 下載模式 | 低 |
Flash 運行模式 | 高 |
1. 首先確保模組可以正常運行工作,發送 AT 指令可以有回覆 AT OK(即確保電源和串口連接正常);
2. 拉低 GPIO0,打開串口工具,在波特率74880
下觀察模組的啓動或復位後的打印信息;
3. 若出現以下紅色字符則認爲模組已經進入了下載模式(後面的7
數值不用理會),可以去正常進行下載。
ets Jan 8 2014,rst cause 1, boot mode:(1,7)
可參考如下電路:
1. 首先確保模組可以正常運行工作(即確保電源和串口連接正常);
2. 拉低 GPIO0,打開串口工具,在波特率115200
下觀察模組的啓動或復位後的打印信息;
3. 若出現以下紅色字符則認爲模組已經進入了下載模式,可以去正常進行下載。
rst:0x10 (RTCWDT_RTC_RESET),boot:0x3 (DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2))
waiting for download
ESP8266 Flash 地址配置
燒錄時的配置選項與編譯時的配置是相關的, 編譯SDK時,控制檯會提示bin文件的燒錄地址,配置不同,燒錄的地址和需要的文件也不同
我們按照燒錄文件的不同分爲兩種情況: 支持雲端升級 和 不支持雲端升級
另外,根據flash容量的不同,我們還要調整bin文件燒錄的地址
支持雲端升級的固件,在 flash 中會分爲 2 個區,一個用來運行程序,一個用來保存升級固件, 當運行 user1 時升級,程序會下載固件到 user2,下載完畢後,下次啓動時從 user2 啓動,依次替換,實現雲端升級。
user2 僅用作升級使用,用戶燒錄時無需下載 user2.bin,此處僅爲說明 user2 的存放位置
注意1:樂鑫在不同版本的 SDK 中有可能會改變這些燒錄位置,以下說明僅爲參考,建議以開發時的 Console
輸出信息爲準。
注意2:合併後的固件內已經包含了地址信息,只需燒寫到 0x0 地址即可。
不支持雲端升級 (NoBoot 模式)
文件名稱 | 8Mbit 地址分配 | 16Mbit 地址分配 | 32Mbit 地址分配 | 備註 |
---|---|---|---|---|
eagle.flash.bin | 0x00000 | 0x00000 | 0x00000 | 主程序,由代碼編譯生成 |
eagle.irom0text.bin | 0x40000 | 0x40000 | 0x40000 | 主程序,由代碼編譯生成 |
esp_init_data_default.bin | 0xFC000 | 0x1FC000 | 0x3FC000 | 由樂鑫在 SDK 中提供 |
blank.bin | 0xFE000 | 0x1FE000 | 0x3FE000 | 由樂鑫在 SDK 中提供 |
支持雲端升級 (Boot 模式)
文件名稱 | 8Mbit 地址分配 | 16Mbit 地址分配 | 32Mbit 地址分配 | 備註 |
---|---|---|---|---|
boot.bin | 0x00000 | 0x00000 | 0x00000 | 由樂鑫在 SDK 中提供,建議一直使用最新版本 |
user1.bin | 0x01000 | 0x01000 | 0x01000 | 主程序,由代碼編譯生成 |
user2.bin | 0x81000 | 0x81000 | 0x81000 | 主程序,由代碼編譯生成 |
esp_init_data_default.bin | 0xFC000 | 0x1FC000 | 0x3FC000 | 由樂鑫在 SDK 中提供 |
blank.bin | 0xFE000 | 0x1FE000 | 0x3FE000 | 由樂鑫在 SDK 中提供 |
ESP32 Flash 地址配置
ESP32 在編譯時,通過 make menuconfig 來配置 Partition Table 分別支持 Single factory app, no OTA、Factory app, two OTA definitions、Custom partition table CSV
注意1:樂鑫在不同版本的 SDK 中有可能會改變這些燒錄位置,以下說明僅爲參考,建議以開發時的 Console
輸出信息爲準。
注意2:合併後的固件內已經包含了地址信息,只需燒寫到 0x0 地址即可。
不支持OTA
默認生成 bootloader.bin、app_demo.bin、partitions_singleapp.bin
bin 文件 | 燒錄地址 | 說明 |
---|---|---|
bootloader.bin | 0x1000 | 二級boot程序,由 SDK 代碼編譯生成 |
app_demo.bin | 0x10000 | 用戶主程序,由代碼編譯生成 |
partitions_singleapp.bin | 0x4000 | 分區信息,由代碼自動生成 |
支持OTA
自定義
燒錄下載
說明:
*切記將模組按以上電路接線完成後,再上電。
*保證3.3V 電源供應,一般要求外部電源輸出電流需在 500mA 及以上。
1、打開ESP FLASH TOOL,根據上一章節配置bin文件和燒錄地址
2、需配置晶振頻率、SPI SPEED、SPI MODE、Flash Size、串口端口號和波特率等,此處波特率可以儘量選大一些,以節省時間,若提示ERROR,請降低波特率,在此以 8Mbit
Flash爲例:
3、配置完畢後,再給模塊上電,使其進入下載模式,再點擊【START】開始燒錄,直到燒錄完成:
4、下載完成後:
* 請將 ESP8266 的 boot 模式切換到 flash boot,即 GPIO15→0, GPIO0→1, GPIO2→1。
* 可通過串口調試工具查看 log 打印或進行串口指令交互。
如何合併固件
如何擦除整片 Flash
使用下面的文件燒寫到Flash 0x0 地址即可