写在前面:
本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。
首先认识一下这esp8266模块是怎样的
一般,我们买回来的模块都像上图那样,有两个芯片以及一些外围元件,而我们选购的时候,不同大小的flash芯片,价格也不一样,模块型号可以看下面
flash芯片是用来存储程序的,esp8266芯片主要用来收发 wifi以及处理程序,把程序从 flash芯片读出来处理;而 flash大小不一样,后面我们编写程序下载的时候,所选的地址也不一样
然后稍微说一下存储芯片吧,一般我们常见的存储芯片有 EEPROM存储芯片和 FLASH存储芯片;EEPROM芯片一般用 IIC读写(比如:at24cxx系列),FLASH芯片一般用 SPI读取(比如:w25qxx系列);而我们用的 esp8266模块是用 flash存储芯片存储的,所以占用 esp8266一个 spi接口,一般来说,这个读写 flash芯片的引脚是不引出来的,因为我们不能使用它,否者会出现程序错乱,但是可以发现在 ESP-12F模块上是有引出来的
就是模块下面的那几个引脚,对应管教丝印看顶部框框那里,所以一般在给来的原理图上都有说明这些引脚不可用的,规格书上也有例图说名,看下图
。。。。。。好像有点说偏了,再说一下 flash芯片的存储分布就接着正文吧
下面以W25Qxx系列为例,因为W25Q 系列生产的加工的商家很多,但是里面的分布和命名规则都是一样的
SPI flash W25Qxx:
W25Q系列的 spiflash。每页(Page)256B,每16个page为一个sector(扇区=4KB),每16个扇区为一个block(块=64KB)
W25Q64=64Mb=8MB=8192KB=128block=2048sector=32768page;
下面截自 winbond华邦电子的 W25Q64FV数据手册
https://www.winbond.com/resource-files/w25q64fv%20revs%2007182017.pdf
好了,正式进入正题,先来看一下我们在烧录时对应需要什么 Bin文件,以便对它的数据储存以及内存分布分析
从上图中可以看到,目前 esp8266有两种 flash布局;一种是 Non-FOTA(不支持云端升级),另一种是FOTA(支持云端升级)
然后来分别认识一下它们各自的布局
• 程序区: 代码编译⽣生成的 bin ⽂文件,烧录到 Flash 占⽤用的区域,请勿改写;
• 系统参数区: esp_iot_sdk 中底层⽤用于存放系统参数的区域,请勿改写;
• ⽤用户参数区: 上层应⽤用程序存储⽤用户参数的区域。开发者请根据实际使⽤用的 Flash size 设置,可
以参考⽂文档 “ 2A-ESP8266__IOT_SDK_User_Manual ” 中的 “ Flash Map ” 一章。
一、Non-FOTA(不支持云端升级)
二、FOTA(支持云端升级)
最后来张 esp8266 flash配置总图