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

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

3天内不再提示

FLASH数据丢失的解决方法

凌科芯安加密芯片 来源:凌科芯安加密芯片 2024-11-21 16:21 次阅读

FLASH数据丢失错误原因:

由于FLASH写入的特性是先擦后写,写入不会在原来位置重新写数据,一般都是把原位置的数据标记为无效,再在新位置写入数据。如果在擦除中掉电或者写入时掉电,有可能会出现失败的情况,下次再上电读取就会出错;如果是在擦除的时候掉电,不能保证擦除完全,但是已经擦除的部分,全变成0xff了。如果是写的时候掉电,已经写入的就是正确的,电平掉到最低极限工作电压附近时写入的数据就无法保证写入正确。

解决方法:

(1)硬件加入掉电保护机制 

硬件电路上有相应的掉电警告中断,而且必须有足够的时间供软件响应。

1) 电源管理芯片检测掉电事件的发生; 

2) 储能元件,在掉电发生后能满足执行掉电保护的操作即有足够的时间存储一些标志位和必要的数据;

一个电源检测芯片,一个储能元件(比如大点的电容)结合软件判断以及提前保存现场就能很好的实现掉电保护。

(2)软件方式解决 

1)要改写某扇区内容,先把该扇区内容备份到一个特殊的扇区; 

2)在某个地方写一个特殊的标记; 

3)完成该扇区的改写操作,清除标记; 

4)每次操作前先判断备份区数据是否需要恢复。

这个过程“备份->置标记->写->清标记”能有效的解决FLASH突然掉电数据异常的问题。

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

    关注

    184

    文章

    17705

    浏览量

    249967
  • 芯片
    +关注

    关注

    455

    文章

    50721

    浏览量

    423165
  • FlaSh
    +关注

    关注

    10

    文章

    1633

    浏览量

    147947

原文标题:FLASH 数据丢失原因分析及解决方案

文章出处:【微信号:凌科芯安加密芯片,微信公众号:凌科芯安加密芯片】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    LabView队列操作程序数据丢失,请问有什么好的改进方法减少数据丢失呢?

    本帖最后由 一只耳朵怪 于 2018-6-21 16:01 编辑 各位大神,我写了一个队列操作,以便读取的光谱数据能够慢一点的写入TDMS文件中,但是程序在运行过程中部分数据丢失,请问,有什么好的改进
    发表于 06-21 08:14

    请问F28062如何把数据写入FLASH使数据掉电不丢失从而代替EEPROM

    请教,F28062如何把数据写入片内FLASH,使数据掉电不丢失,从而代替EEPROM?是否有例程之类?
    发表于 08-20 07:18

    Flash 数据丢失

    在社区  ST MCU实战  -> 存储器 有一篇文档  ,干扰环境下Flash数据丢失,我现在也出现了同样的问题,按照文档给出了解决的思路, 这个思路怎么用代码来实现,是否有示例代码?
    发表于 10-01 10:37

    msvcr71dll等dll丢失解决方法

    情况,会造成一些应用程序无法正常运行(如CS、搜狗输入法、qq等)。下面是问题的出现时的弹出框:解决方法:网上的解决方法有两种:第一种:就是丢失什么dll就网上百度搜索下载相应的dll文件,然后把其放到
    发表于 07-09 06:00

    nvs_flash.h头文件的解决方法

    在创建项目过程中,找不到nvs_flash.h头文件解决方法:在CMakeList.txt文件中添加 PRIV_REQUIRES nvs_flash,例子如下
    发表于 02-17 07:30

    Silabs的Flash单片机丢失程序原因

    本内容介绍了Silabs的Flash单片机丢失程序原因
    发表于 06-14 15:07 122次下载
    Silabs的<b class='flag-5'>Flash</b>单片机<b class='flag-5'>丢失</b>程序原因

    短波通信盲区现象解决方法介绍

    短波通信盲区现象解决方法介绍短波通信盲区现象解决方法介绍短波通信盲区现象解决方法介绍
    发表于 11-10 17:13 5次下载

    Flash数据丢失的原因

    芯片贴板后跑不起来?Flash里面的数据在使用过程中莫名改变或不翼而飞?程序丢失可能无法正常运行,从而造成整个系统崩溃,下面我们来看看是什么原因让数据异常变化。 1、用户代码对
    发表于 10-13 20:31 11次下载
    <b class='flag-5'>Flash</b><b class='flag-5'>数据</b><b class='flag-5'>丢失</b>的原因

    Flash数据的内容丢失的原因有哪些详细说明

    例如,在有对Flash写入或擦除操作的代码中,如果用户误调用了写入或擦除函数或者由于程序跑飞而恰好执行了Flash擦除或写入函数,这自然会导致数据丢失或改变。针对以上情况,可以在程序中
    的头像 发表于 01-01 09:52 2.4w次阅读

    工控机数据丢失原因及解决方法

    在我们使用工控机的时候,偶尔会发生系统数据丢失的情况,这是因为什么原因呢?下面我们就来讲一讲工控机数据发生的原因以及解决方法
    发表于 06-30 16:48 3338次阅读

    "STM32下载出现Cannot Load Flash Device Decription! 和 Error: Flash Download faled . ""Cortex-M3*的解决方法"

    STM32下载出现Cannot Load Flash Device Decription! 和 Error: Flash Download faled . "Cortex-M3*的解决方法
    发表于 11-26 18:21 1次下载
    "STM32下载出现Cannot Load <b class='flag-5'>Flash</b> Device Decription! 和 Error: <b class='flag-5'>Flash</b> Download faled . ""Cortex-M3*的<b class='flag-5'>解决方法</b>"

    STM32无法连接JLink(Flash读写保护)解决方法

    对于其他的stm32芯片或者其他ARM芯片,其实解决方法都相通,主要就是先修改启动方式,再去更改flash或者ram中的程序。
    的头像 发表于 05-05 12:24 4060次阅读
    STM32无法连接JLink(<b class='flag-5'>Flash</b>读写保护)<b class='flag-5'>解决方法</b>

    工业路由器为何会出现数据丢失?丢包的4个常见问题与解决方法

    工业路由器是通过网络进行数据传输。但工业路由器在进行数据传输过程中,若出现网络不稳定的情况,数据包就会出现丢失的情况。以下是工业路由器的4个常见问题与
    的头像 发表于 02-28 18:18 1448次阅读
    工业路由器为何会出现<b class='flag-5'>数据</b>包<b class='flag-5'>丢失</b>?丢包的4个常见问题与<b class='flag-5'>解决方法</b>

    PLC数据丢失如何找回?

    如果PLC数据丢失,以下是一些可能的方法来尝试找回数据: (1)备份恢复:如果您有先前的备份数据,可以尝试从备份中恢复
    的头像 发表于 09-05 10:30 3801次阅读

    假如服务器的数据丢失,如何快速恢复丢失数据?

    在服务器数据丢失后,快速恢复丢失数据是至关重要的,以避免业务中断和数据损失。以下是一些方法和步
    的头像 发表于 08-08 16:59 467次阅读