99A-ESP8266__Flash_RW_Operation__CN_v0.2

时间:2025-04-19

8266 flash

ESP8266 Flash 读写说明

Version 0.2

Espressif Systems IOT Team

8266 flash

免责申明和版权公告

本 文中的信息,包括供参考的URL地址,如有变更,恕不另 行通知。

文档“按现状”提供,不负任何担保责任,包括对适销性、适 用于特定 用途或 非侵权性的任何担保,和任何提案、规格或样品在他处提到的任何担保。本 文档不负任何责任,包括使 用本 文档内信息产 生的侵犯任何专利权 行为的责任。本 文档在此未以禁 止反 言或其他 方式授予任何知识产权使 用许可,不管是明 示许可还是暗 示许可。

Wi-Fi联盟成员标志归Wi-Fi联盟所有。

文中提到的所有商标名称、商标和注册商标均属其各 自所有者的财产,特此声明。

版权归© 2015 乐鑫信息科技(上海)有限公司所有。保留所有权利。

8266 flash

Table of Contents

1.

2.前 言 ...............................................................................................................4 Flash 读写接 口 ..............................................................................................4

2.1.spi_ ash_erase_sector ..................................................................4

2.2.spi_ ash_write ..............................................................................4

2.3.spi_ ash_read ...............................................................................5

Flash layout ..................................................................................................5

Flash 读写保护 示例 .......................................................................................6

4.1.问题描述 ........................................................................................6

4.2.实现原理 ........................................................................................6

4.3.软件 示例 ........................................................................................7

4.4.其他建议 ........................................................................................8

1.

2.Flash 读写保护参考 一 ....................................................................8 Flash 读写保护参考 二 ....................................................................83.4.

8266 flash

1.前 言

本 文介绍 ESP8266 的 Flash 读写接 口,Flash 读写时的注意事项,以及 esp_iot_sdk 中 IOT_Demo 提供的 Flash 读写保护 示例。

2.

Flash 读写接 口 spi_flash_erase_sector : spi_flash_write spi_flash_read 一个扇区(sector)为 4KB,从扇区 0 开始计数,以下接 口可读写整个 Flash 的任意区域: 擦除 Flash 的某个扇区(sector)。 将数据写 入Flash。 读取Flash中的数据。 : :

返回值:

Typedef enum{

SPI_FLASH_RESULT_OK, SPI_FLASH_RESULT_ERR, SPI_FLASH_RESULT_TIMEOUT }SpiFlashOpResult;

2.1.

spi_ ash_erase_sector 2.2.

spi_ ash_write

8266 flash

"

2.3.

spi_ ash_read

3.

Flash layout 由于上述软件接 口,可以读写 Flash 的整个区域,请注意 Flash 以下三个区域划分: 程序区:代码编译 生成的 bin 文件,烧录到 Flash 占 用的区域,请勿改写; 系统参数区:esp_iot_sdk 中底层 用于存放系统参数的区域,请勿改写; 用户参数区:上层应 用程序存储 用户参数的区域,在 IOT_Demo 中定义为 0x3C000 开始的 16KBytes, 用户可以 自 行更改

8266 flash

" 补充说明:

1.上表程序区仅表明起始位置,占 用空间由编译烧录的 bin 大 小决定。

2.系统参数区,存储系统级数据:

esp_init_data_default.bin :位于 Flash 倒数第 4 个 sector

3.blank.bin :位于 Flash 倒数第 2 个 sector 例如,对于 512KB Flash, esp_init_data_default.bin 烧到 0x7C000; blank.bin 烧到 0x7E000 Flash 读写编程可参考 IOT_Demo 中 user_light.c,在 IoT_Demo 将应 用级数据存储在了

0x3C000 开始的 4 x 4 KB (4 个扇区)区域。

例如,master_device_key.bin ( 用户参数,仅在需使 用 Espressif Cloud 的情况需烧录) 烧录在 0x3E000地址

4.Flash 读写保护 示例

4.1.问题描述

Flash 擦除的最 小单位为 一个扇区(4KB),当存储在某个扇区的数据需要改写时,流程是先擦掉整个扇区,再将该扇区的数据写回去。

那么,如果在扇区的擦写过程中突然断电,就有可能导致该扇区的数据丢失。

针对上述问题,Espressif 提供了Flash 读写保护机制的 示例,并给出其他读写保护 方法的建议。客户可以直接使 用 Espressif 提供的 Flash 读写保护机制,也可以实现 自 己的 Flash 读写保护机制。 在 IOT_Demo 中 user_esp_platform.c 提供了 Flash 读写保护的样例。

4.2.实现原理

Espressif Flash 读写保护 示例,使 用三个 sector(扇区)实现(每 sector 4KB),提供 4KB 的可靠存储空间。

将 sector 1 和 sector 2 作为数据 sector,轮流读写,始终分别存放“本次”数据和“前 一次”数据,确保了 至少有 一份数据存储安全;sector 3 作为 ag sector,标志最新的数据存储 sector。

8266 flash

"保护机制如下: …… 此处隐藏:3595字,全部文档内容请下载后查看。喜欢就下载吧 ……

99A-ESP8266__Flash_RW_Operation__CN_v0.2.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219