当工程编译完成,打开bin 文件夹,看到bin 文件夹下有很多的文件,如图1-2-30 所示。那么我们该烧录哪些文件呢?又该如何将编译之后的文件烧录到8266 外部Flash 当中呢?

图1-2-30 二进制bin 文件
1.Flash 的布局图
ESP8266 核心电路模组是用外部Flash 存储程序的,大小只有4 MB,也就是4096 KB,或32 Mb。每4 KB 是一个Flash 扇区,扇区编号从0X000~0X3FF。现在以non-FOTA(不支持云端升级)的Flash 布局为例,来说明程序是如何在Flash 中存储的。Flash 布局如图1-2-31所示。

图1-2-31 non-FOTA Flash 布局图
是从0X000000 开始到0X3FFFFF 结束,共分为六个部分,这六个部分如下:
系统程序(eagle.Flash.bin):它是用来存放运行系统必要的固件。
系统程序(eagle.irom0text.bin):用来存放的是用户编写的程序。
用户数据:用来存放用户的一些参数或者数据等。
RF_CAL 参数区:保存校准之后的射频参数。
默认RF 参数区:用来存放默认的射频参数。
系统参数区:用来存放系统参数。
接下来我们编译一下工程。
2.Flash 固件下载地址
在乐鑫提供的SDK 入门指南中,说明了ESP8266 Firmware(FW)是一些可直接下载到 ESP8266 HDK 中的BIN 文件。通过表1-2-1 可知,Non-FOTA(不支持云端升级)的Flash需要烧录的,分别是esp_init_data_default.bin、blank.bin、eagle.flFlash.bin、eagle.irom0text.bin四个文件。
表1-2-1 ESP8266 FW

虽然确定了这四个文件,但该烧录到外部Flash1 当中的哪个地址呢?SDK 入门指南给出了答案,如表1-2-2 所示。
表1-2-2 Non-FOTA 的下载地址(单位:KB)

ESP8266 核心电路模组的外部Flash 则是4096 KB,故按照表1-2-2 所对应地址来下载。(https://www.xing528.com)
3.固件下载
(1)选择下载工具Flash_download_tools 并打开,如图1-2-32 所示。

图1-2-32 Flash 下载工具
(2)选择需要下载的二进制文件,并设置到相应的下载地址,如表1-2-2 所示。将系统程序放到0X000000 地址处下载,将用户程序下载到0X10000,将blank.bin 放到0X3FB000下载,下载默认的射频参数到0X3FC000,最后将blank.bin 下载到0X3F1000,文件选择完毕,地址设置完毕后,勾选生效,如图1-2-33 所示。

图1-2-33 bin 文件下载及地址设置
(3)设置烧录选项,根据实际晶振,选择晶振频率。ESP8266 核心电路模组外部晶振是26 MHz,SPA 速度40 MHz,SPI MODE 模式为DOUT,因为有些Flash 既支持QIO 又支持QOUT,但不支持DIO,所以为了都能使用,推荐使用DOUT 的SPI 模式。Flash 大小为32 MB,DoNotChgBin 选项如果勾选的话,Flash 的运行频率方式和布局会以用户编译时的配置选项为准。这是什么意思呢?在SDK 工程中有个makefile 文件,里面配置了Flash 的运行频率等信息,勾选就以此为准,如果不选就以目前下载器设置的为准,一般情况下不勾选,如图1-2-34所示。

图1-2-34 烧录参数设置
(4)烧录文件到Flash 当中,选择8266 对应的串口。波特率可以自行选择,一般是用1152000 下载的速度比较快,之后点击开始下载,如图1-2-35 所示。

图1-2-35 下载设置
(5)8266 两种下载模式:
GPIO0=1、GPIO1=1、GPIO5=0 的时候是程序运行模式;
GPIO0=0、GPIO1=1、GPIO5=0 的时候是串口下载模式。
如果用户想下载程序到8266 中的外部Flash 的话,GPIO0 与GPIO5 拉低,也就需要按下BOOT。具体操作为首先要按下BOOT,然后按下RESET,接着松开RESET,但不要松开BOOT,最后松开RESET,等一两秒再松开BOOT,如图1-2-36 所示。

图1-2-36 8266 下载硬件设置
(6)程序下载完成后,按下开发板上的“RESET”,如图1-2-37 所示,程序正常运行,为了方便演示,这里运行的是温度和显示程序。

图1-2-37 试验结果
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
