烧写说明
阏男秀 edited this page Nov 3, 2018
·
4 revisions
第一次烧写时,需要烧写4个bin,下面以本人常用的NodeMCU(4MB Flash ESP8266)为例:
bin | 烧录地址 | 说明 |
---|---|---|
eagle.flash.bin | 0x00000 | 主程序,编译代码生成 |
eagle.irom0text.bin | 0x10000 | 主程序,编译代码生成 |
esp_init_data_default.bin | 0x3FC000 | 初始化射频参数,由 Espressif 在 SDK 中提供 |
blank.bin | 0x3FE000 | 初始化系统参数,由 Espressif 在 SDK 中提供 |
*备注:如果使用 ESP8266 SDK v2.0 以下(不包括v2.0),eagle.irom0text.bin 烧录地址为0x40000。
一般来说,前两个bin文件:eagle.flash.bin和eagle.irom0text.bin,烧写位置是固定的,可以根据编译完成时的提示地址烧录。
...
!!!
No boot needed.
Generate eagle.flash.bin and eagle.irom0text.bin successully in folder bin.
eagle.flash.bin-------->0x00000
eagle.irom0text.bin---->0x10000
!!!
而后两个bin文件:esp_init_data_default.bin和blank.bin,需要根据 flash 容量,选择不同的地址。这两个bin文件烧写一次即可,以后SDK编译更新bin可不用重复烧写,这样不会清除上次连接过的Wi-Fi信息。
下面是从官方文档摘录过来的一些信息:
- 系统参数区固定为Flash的最后四个扇区,每扇区4KBytes,即Flash最后的16KB;用户参数区地址由用户自定义,IOT_Demo中设置为0x3C000开始的四个扇区,用户可以设置为任意未占用的地址。
- blank.bin 初始化系统参数,烧录地址为Flash的倒数第二个扇区;
- esp_init_data_default.bin 初始化射频相关参数,烧录地址为Flash的倒数第四个扇区;
最后放上所有Flash烧写地址配置,请根据Flash大小自行修改:
bin | 各个 Flash 容量对应的下载地址 |
|||||
512B | 1024B | 2048B | 4096B | 8192B | 16*1024B | |
eagle.flash.bin | 0x00000 | |||||
eagle.irom0text.bin | 0x10000 | |||||
esp_init_data_default.bin | 0x7C000 | 0xFC000 | 0x1FC000 | 0x3FC000 | 0x7FC000 | 0xFFC000 |
blank.bin | 0x7E000 | 0xFE000 | 0x1FE000 | 0x3FE000 | 0x7FE000 | 0xFFE000 |
*关于 Flash的单位
一般来说Flash是用bit单位表示。有时后面加了大写的B,表示是用Byte单位表示。
换算示例:
4 MByte = 4096 Byte = 4096*8 bit = 4*1024*8 bit = 32 Mbit
4MB(32bit) Flash ESP8266: