0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32系统的应用中如何避免数据受断电影响

454398 来源:上海韬放电子 作者:上海韬放电子 2020-12-11 17:23 次阅读

嵌入式设备的开发中,断电时通常需要保存一些非易失性数据。如果添加了系统配置,用户定义的信息等,并且添加了额外的ROM IC(例如基于I2C的24C02等),则额外的PCB空间将增加,硬件成本将增加,并且产品将减少。如果仅从实用角度出发,在诸如STM32系统的应用中,作者建议可以尝试以下两种方法并作为参考。

基于备份寄存器

原理:对于大容量MCU系列,它具有42个16位备份寄存器,而中小型微处理器仅具有10个16位备份寄存器。以stm32f103c8t6为例,这42个备份寄存器的地址偏移量为:0x04〜0x28、0x40〜0xbc,可以存储84个字节的数据。备用寄存器取决于备用电源。当外部VDD掉电时,只要系统的Vbat可以正常存在,Bakeup domaain寄存器的内容就可以正常保存。

软件编程的要点如下:以一个项目中常用的案例为例

函数初始化:

读取备份寄存器:void BKP_ WriteBackupRegister(uint16_ t BKP_ DR,uint16_ t Data)

读取备份寄存器:uint16_ t BKP_ ReadBackupRegister(uint16_ t BKP_ DR)

此方法简单明了,但由于缺少可用空间,因此仅适用于保存少量数据,例如用户在可穿戴设备中的通用配置数据。

基于内部闪存

原理:闪存,也称为闪存,也是可以重写的存储器。它分为nor flash和NAND flash。闪存通常不用于代码存储场合,例如嵌入式控制器中的程序存储空间。而NAND闪存通常用于大数据存储场合,例如U盘和固态硬盘,它们通常是NAND闪存类型。

在STM32芯片中,闪存的读写单位均基于“页面”。以stm32f103c8t6为例,每页大小为2K字节;

软件编程要点

释放写保护释放:此方法基于以下前提:允许当前的读写Flash,并且允许当前的Flash进行写操作。因此,目前暂时不讨论某些API,例如optionbytes操作和flash读写保护操作。

Flashwrite:单个uint32_ T数据写入的简单流程图如下:

Flashread:对于单个int数据读取,它相对简单,可以通过以下语句完成:rddata =(*()__ IOuint32_ t *)dataAddr);

由于SW中涉及许多API,并且编码人员还需要理解许多其他背景知识,因此使用此方法相对复杂。但是,由于数据保存在页面中,因此页面大小最大为2048字节,因此该方法可用于保存掉电时不容易丢失的大数据。考虑到闪存读写保护的逻辑机制,最好在不考虑数据安全性的情况下使用此方法。

对于这种断电保护数据方法,这里只是丢砖引玉,欢迎您提出更好的方案。
编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5020

    浏览量

    117630
  • 嵌入式设备
    +关注

    关注

    0

    文章

    102

    浏览量

    16829
  • 可穿戴设备
    +关注

    关注

    55

    文章

    3722

    浏览量

    165865
收藏 人收藏

    评论

    相关推荐

    STM32L0系列没有VBAT,如果使用RTC,系统断电怎么保证RTC时钟继续运行?

    STM32L0系列,没有VBAT,如果使用RTC,系统断电怎么保证RTC时钟继续运行
    发表于 03-29 07:56

    如何在实际产品执行断电程序

    的:在用户按下电源按钮后,电路应该向STM32发送最高优先级的中断,STM32立即存储所有必要的数据。之后,STM32将禁用信号发送给为整个系统
    发表于 10-11 16:12

    频繁断电会造成监控数据丢失吗?

    ,那么频繁断电是否会导致硬盘数据损失呢?此事件需要两个方面分析,一是商用监控系统、二是家用监控系统。   我们先讨论商用监控系统:频繁
    发表于 10-17 11:41

    UPS断电系统安全使用要领

    不间断电系统工作正常,且可维持足够的供电后备时间。11.如果长时间放置不使用,必须将UPS不间断电源存放在干燥环境。12.UPS不间断电
    发表于 08-13 11:55

    单片机断电后RTC是不是清零了?如何避免数据的丢是谁呢

    单片机断电后RTC是不是清零了?如何避免数据的丢是谁呢?
    发表于 05-22 12:22

    电影评论网络数据抓取与分析系统的设计与实现

    电影评论网络数据抓取与分析系统设计与实现
    发表于 05-29 10:36

    系统断电时FPGA数据保护的方法有哪几种?

    系统断电时FPGA数据保护的方法有哪几种?
    发表于 04-29 06:27

    STM32系统掉电保存数据的方法是什么

    STM32系统掉电保存数据的方法在嵌入式设备开发,往往需要保存一些掉电不易失性的数据,如果
    发表于 12-10 07:42

    Python+Django+Mysql实现在线电影推荐系统

    Python+Django+Mysql实现在线电影推荐系统(基于用户、项目的协同过滤推荐算法)一、项目简介1、开发工具和实现技术pycharm2020professional版本,python3.8
    发表于 01-03 06:35

    如何利用Java swing mysql去实现一种电影票订票管理系统

    Java swing mysql实现的电影票订票管理系统,主要实现的功能有:用户端:登录注册、查看电影信息、选择影院场次、选座购票、查看自己的影票、评价电影等功能。管理员:登录、
    发表于 01-03 06:23

    如何去实现一种电影推荐系统设计

    数据源解析电影信息用户评分信息电影标签信息
    发表于 01-03 06:27

    为什么STM32F746G-DISC flasch内存断电读写后保存的数据会丢失?

    为什么STM32F746G-DISC flasch内存断电读写后保存的数据会丢失?
    发表于 01-06 06:19

    STM32F746G DISCO如何断电记忆数据

    STM32F746G DISCO如何断电记忆数据
    发表于 01-11 07:40

    stm32的硬件IIC如何避免数据?

    stm32的硬件IIC如何避免数据
    发表于 10-30 07:03

    快速学习-电影推荐系统设计(数据源解析)

    数据源解析电影信息用户评分信息电影标签信息
    发表于 01-11 16:06 5次下载
    快速学习-<b class='flag-5'>电影</b>推荐<b class='flag-5'>系统</b>设计(<b class='flag-5'>数据</b>源解析)