1、ESP8266-12F的Flash

ESP8266-12F的Flash共4M字节。【4096K字节】

根据手册,一个扇区大小:4096字节。
共有(4096*1024/4096)=1024=0x400个扇区,扇区地址0~0x3FF.

2、Flash布局

可以对Flash进行读写,但是要注意地址,不要用到有用的范围喽~

下图是不支持云端升级版本的Flash布局,我们可以用的就是“用户数据”这一区域。

那么具体来说,这几个部分的范围是多少呢?

我圈起来的就是ESP8266-12F模组对应的那一行。

再结合bin文件的下载地址,就可以得到最后一列,各bin文件的扇区编号范围。

因此,安全的用户数据区域,扇区是从208~1018,一共811个扇区,3244K字节。

bin文件 32Mbit下载地址 扇区
eagle.flash.bin 0x00000 0~15
eagle.irom0text.bin 0x10000 16~207
blank.bin 0x3FB000 1019
esp_init_data_default.bin 0x3FC000 1020~1021
blank.bin 0x3FE000 1022~1023

最后那几个扇区,与上图Flash布局有些许出入,估计是因为SDK版本问题导致的?欢迎留言。

2、API

主要是以下三个API,读、写、以及写之前的扇区擦除

API是以32位,也就是4字节为数据类型,请让Flash读写是4字节对齐操作。

2.1、读-spi_flash_read

2.2、擦除-spi_flash_erase_sector

  1. 写Flash之前需要擦除。
  2. 参数是扇区号,不是内存地址。

2.3、写-spi_flash_write

3、代码&ESP8266的大小端模式

u8 read_buff[64];
u32 write_buff[16]={1,2,3,4,5,6,7,8, 9,10,11,12, 13,14,15,16};void ICACHE_FLASH_ATTR user_init(void)
{u8 i;uart_init(115200,115200);my_delay_ms(1000);                       //等待串口稳定,避免起始数据错误system_soft_wdt_feed();                 //喂狗,防止复位spi_flash_erase_sector(0xFF);          //擦除扇区spi_flash_write(0xFF*4096,(uint32 *)write_buff,16*4);     //写16个32位数据spi_flash_read(0xFF*4096,(uint32 *)read_buff,16*4);      //读16个32位数据for(i=0;i<16;i++){                     //打印读出来的数据,8位数据格式os_printf("\r\nwrite[%d]=%d,read[%d]=%d\r\n",i,write_buff[i],i,read_buff[i]);my_delay_ms(10);}
}

串口输出结果如下,可以看到u32类型的1、2、3、4在内存中存放的顺序。

ESP8266为小端模式。

大端?小端?
从低地址到高地址,横着写出来,你一读就对的是大端,不符合我们习惯的是小端。(大端—大众、小端—小众,我是这样记的~)
比如这个read数组,前4的是"1000",而实际应该是1,不符合习惯,故为小端。
P.S.小端:低地址存放数据的低字节;

学习ESP8266_15_Flash相关推荐

  1. java入门 慕路径,Java入门基础知识总结学习教程大全【必看经典】

    类型的表达式,是循环条件,表达式3是党执行了一遍循环之后,修改控制循环的变量值. ??? for语句的执行过程是这样的:首先计算表达式1,完成必要的初始化工作:然后判断表达式2的值,如果表达式的值为t ...

  2. Java EE学习心得

    –Java EE学习心得   1.    称为编程专家的秘诀是: 思考-----编程--------思考------编程--.. 编程不能一步到位,不能一上来就编,必须先思考如何写,怎样写?然后再编程 ...

  3. FastAI 2019课程学习笔记 lesson 2:自行获取数据并创建分类器

    文章目录 数据获取 google_images_download 的安装和使用 挂载google 个人硬盘到Google colab中 删除不能打开文件 创建ImageDataBunch 训练模型 解 ...

  4. FastAI 课程学习笔记 lesson 1:宠物图片分类

    文章目录 代码解析 神奇的"%" 导入fastAI 库 下载解压数据集 untar_data 获取帮助文档 help() ? ?? doc 设置路径 get_image_files ...

  5. 深度学习学习指南-工具篇

    colab Colab是由Google提供的云计算服务,通过它可以让开发者很方便的使用google的免费资源(CPU.GPU.TPU)来训练自己的模型. 学习经验总结 如何使用命令行? 通过!+cmd ...

  6. Redis学习之路(一)--下载安装redis

    redis学习之路--下载安装redis windows安装redis 1.下载redis 2.安装 3.查看是否安装成功 windows安装redis 1.下载redis 网址:https://gi ...

  7. python内置库之学习configparser库(一)

    python内置库之学习configparser库(一) 1.引言 ini文件简介 [节] 键=值 注:节不能重复出现 2.自己封装了一个增删改查的类,可以参考一下 import configpars ...

  8. 前端Vue学习之路(二)-Vue-router路由

    Vue学习之路 (二) Vue-router(基础版) 一.增加静态路由 二.动态路由+路由嵌套+404页面 三. 编程式导航 四.命名路由 五.命名视图 六.重定向和起别名 1.重定向 2.起别名 ...

  9. 前端Vue学习之路(一)-初识Vue

    Vue学习之路 (一) 1.引言 2.更换npm国内镜像源 3.用npm下载Vue 4.Vue全家桶 5.使用命令创建项目 5.推荐插件 6.推荐网站 7.学习扩展 1.引言 先安装node.js环境 ...

最新文章

  1. fastjson解析json简介
  2. Java中getResourceAsStream的用法小结
  3. objective-c 2.0编程语言,Objective-C 2.0程序设计(原书第2版) 中文PDF扫描版[15MB]
  4. XCTF(攻防世界)—新手web题Write Up
  5. vue项目接口地址暴露_vue项目打包后可以配置接口地址的方法
  6. boost::type_erasure::add_assignable相关的测试程序
  7. c语言释放整个链表,最简单的链表删除第一个节点时释放内存的问题
  8. 语法分析与中间代码生成
  9. SpykeTorch: Efficient Simulation of Convolutional Spiking Neural Networks With at Most One Spike per
  10. 《引爆点》读书笔记(一)
  11. 惊呆了!被公司辞退拿了22万补偿金,原东家称每月涨薪7000,只要退还22万
  12. 奖励名单表格模板_“我用一套表格,解决了孩子的拖延症,一路用到小学高年级!”...
  13. java 导出文件上传模板,上传Excel文件批量导入数据
  14. python magic_method
  15. win 8.1 安装framework3.5
  16. html文件转为其他格式文件格式,HTML文件转Word文件格式
  17. JAVA导出txt文件
  18. java poi 设置标题_java POI操作word2010简单实现多级标题结构
  19. iOS动态库重签名步骤
  20. 解密阿里云大规模深度学习性能优化实践

热门文章

  1. js 根据身份证获取出生日期与年龄
  2. Acm1——拉里今年毕业了,终于找到了一份工作。
  3. 心知天气API如何调用与json数据如何显示
  4. 10G至40G互连方案-40G QSFP+ PSM4单模光模块
  5. python 批量造数据
  6. 加薪不如发奖金? 穆穆-movno1
  7. linux使用grep条件搜索大文件的行数等操作
  8. 诗词锦集(持续更新)
  9. 10.图灵学院-----阿里/京东/滴滴/美团整理----安全验证篇
  10. 第三方API接口对接-电子合同的实现逻辑