ESP8266 RTOS SDK学习之内存分布

写在前面: 

本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。

首先认识一下这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配置总图

发布了31 篇原创文章 · 获赞 12 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42992084/article/details/101040544
今日推荐