[OTA-day5 FLASH擦写]

本文介绍了STM32的FLASH在嵌入式硬件中的作用,特别是针对OTA更新的过程。FLASH分为主存储块和信息块,其中系统存储器存放BootLoader,选项字节存储配置信息。在OTA升级时,数据先暂存于外部W25Q64闪存,分片写入防止断电导致数据丢失,最后写入到FLASH的A区。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先我们得弄清楚FLASH是什么呢?

说到STM32的FLSAH,我们的第一反应是用来装程序的(掉电不丢失),实际上,STM32的片内FLASH不仅用来装程序,还用来装芯片配置、芯片ID、自举程序等等。当然, FLASH还可以用来装数据,根据用途,STM32片内的FLASH分成两部分:主存储块、信息块。 主存储块用于存储程序,我们写的程序一般存储在这里。 信息块又分成两部分:系统存储器、选项字节,系统存储器存储用于存放在系统存储器自举模式下的启动程序(BootLoader),当使用ISP方式加载程序时,就是由这个程序执行。这个区域由芯片厂写入BootLoader,然后锁死,用户是无法改变这个区域的。 选项字节存储芯片的配置信息及对主存储块的保护信息。   而我们OTA升级的AB区也是将FLASH中的64K扇区分为前B后A的

FLASH对于我们本次项目的作用主要就是:

OTA更新时,先将更新的数据写到W25Q64里保存,然后将数据再写入FLASH中的A区

为什么要先放到W25Q64中保存呢?因为我们是分片写入,一次传不了那么多,我们采用分片传入,每次传输256个字节,如果遇到中途断电,之前写入的数据也是存到W25Q64中不会丢失 

FLASH擦除和写入操作:

#include "gd32f10x.h"
#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值