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

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

3天内不再提示

Flash的误操作不当致使程序丢失或被错误改写

AGk5_ZLG_zhiyua 来源:YXQ 2019-08-06 16:54 次阅读

芯片贴板后跑不起来?Flash里面的数据在使用过程中莫名改变或不翼而飞?重新下载程序后又可以运行?这究竟是为什么呢?

1

用户代码对Flash的误操作不当引起程序丢失或被错误改写

例如,在有对Flash写入或擦除操作的代码中,如果用户误调用了写入或擦除函数或者由于程序跑飞而恰好执行了Flash擦除或写入函数,这自然会导致数据丢失或改变。针对以上情况,可以在程序中设置多个允许操作的变量,当执行写入或擦除操作时,对这些变量进行判断,只有条件全部满足时,才执行相应的操作。

在一些不需要进行擦除或写入操作的系统中,对存储区进行写保护或擦除保护设置,能有效的防止数据被意外修改。做到了写入或擦除的可控性,基本可以避免此种情况发生。

图1 Flash保护

2

电源失效

图2 电源噪声严重

电源电压的异常可能会导致系统单片机系统工作异常的现象,如输出电压小于单片机系统工作所需的最小电压,输出电压不干净,噪音严重等,这些很容易引起单片机内部电路的逻辑紊乱,Flash的读写信号处于不稳定状态。可能产生满足Flash的写操作,从而给系统带来严重的损害。

针对以上情况,可以在系统中加入电源监控芯片或使能MCU本身的电源监控电路,在电源异常的情况下禁止对Flash区域操作。

3

系统时钟不稳定

无论对于内部Flash还是外部Flash,系统时钟的不稳定,都将导致MCU得不到可靠的工作时序信号,从而在读写Flash时产生不可预料的后果。

4

环境干扰

环境干扰的可能原因很多,如生产过程中的高温焊接、静电、使用环境的温湿度,强磁场等,都可能影响到Flash或整个系统的稳定。环境干扰的因素很多,在此不展开讨论。

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

    关注

    10

    文章

    1633

    浏览量

    147955
  • 数据
    +关注

    关注

    8

    文章

    7006

    浏览量

    88954

原文标题:为何你的Flash数据会不翼而飞?

文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ROM数据丢失的常见原因

    的常见原因 1. 硬件故障 1.1 物理损坏 ROM芯片可能因为物理冲击、高温、湿度、腐蚀等因素而损坏。这些因素可能导致芯片内部电路断裂短路,从而造成数据丢失。 1.2 老化 随着时间的推移,ROM芯片会逐渐老化,其性能会逐渐下降。老化的ROM芯片可能会出现数据读写
    的头像 发表于 11-04 10:29 623次阅读

    plc什么情况下会导致程序丢失

    程序可能会丢失。 电源故障 电源故障是导致PLC程序丢失的常见原因之一。当PLC的电源突然中断电压波动过大时,可能会导致
    的头像 发表于 08-19 09:14 1320次阅读

    plc程序丢失怎么恢复回来

    因为各种原因丢失,如硬件故障、软件错误、人为操作失误等。 1. 确定程序丢失的原因 在开始恢复程序
    的头像 发表于 07-25 10:08 2368次阅读

    怎么判断PLC程序丢失

    PLC程序丢失并及时采取措施是非常重要的。 程序丢失的原因 在讨论如何判断PLC程序丢失之前,我
    的头像 发表于 07-25 10:01 1262次阅读

    STM32F4上电不启动,固件损坏,程序丢失的原因?

    STM32F407ZET6 PDR_ON 143引脚0R电阻接地。 上下电程序出现无法运行的现象,出现异常后读回MCU FLASH数据比对,FLASH一段空间范围内的数据
    发表于 07-23 06:26

    Ti60F100 内外flash操作方案

    有客户认为Ti60F100内部flash容量比较小,只有16Mb,需要外挂flash.这里我们提供了内部flash和外部flash分别操作
    的头像 发表于 05-20 16:42 1554次阅读
    Ti60F100 内外<b class='flag-5'>flash</b><b class='flag-5'>操作</b>方案

    STM32F4在APP运行时导致IAP程序修改怎么解决?

    IAP程序修改无法运行,导致过程IAP卡死。 已验证该错误发生在APP程序(地址0x08020000)中,仅IAP程序的首地址0x0800
    发表于 05-17 09:32

    stm32f469读取内部FLASH程序就会死掉的原因?

    如题,我将数据写入指定的内部FLASH的某个地址然后进行读取,但是一读整个程序就死了。我开始以为是我进行写操作不当造成的,后来我测试不擦除内部FLA
    发表于 04-26 07:51

    KT404C语音芯片外挂flash用一段时间之后数据改写的问题查找

    了乱码 3、将flash的bin文件读出来,发现flash莫名其妙的改写了 4、重新将音频文件拷贝至flash里面,之后就完全正常了
    的头像 发表于 03-27 13:46 413次阅读
    KT404C语音芯片外挂<b class='flag-5'>flash</b>用一段时间之后数据<b class='flag-5'>被</b><b class='flag-5'>改写</b>的问题查找

    STM32上下电内部flash改写的原因?

    基于STM32F405系列一个64pin MCU,在使用过程中,整机掉电更换另一个部件,再上电后发现这个产品不工作了。发回厂家发现STM32内部flash数据改写了,前几行改成了0
    发表于 03-25 08:24

    Tasking误操作导致MCU锁怎么解决?

    硬件环境:infineon TriBoardDebugger:Start Kit(TriBoard自带调试接口0) 在Tasking中Boot Mode Header中由于错误操作选择了
    发表于 02-20 07:03

    导致PLC信号干扰的错误操作

    以下是一些可能导致PLC(可编程逻辑控制器)信号干扰的错误操作
    的头像 发表于 01-22 10:05 568次阅读

    labview 丢失外部符号依赖关系

    LabVIEW程序时,可能会遇到"丢失外部符号依赖关系"的错误。这种错误通常表示在程序中使用了
    的头像 发表于 01-09 10:31 3682次阅读

    准备time machine备份磁盘发生错误

    的问题,并提供逐步操作的教程,以确保你的备份可以顺利进行。 第一部分:错误类型及常见原因 在使用Time Machine备份磁盘时,可能会遇到多种错误。以下是一些常见的错误类型及其可能
    的头像 发表于 12-28 11:27 1217次阅读

    ug内部错误,内存访问违例怎么解决

    ug内部错误,内存访问违例怎么解决 内部错误和内存访问违例是编程中常见的问题,它们可能会导致应用程序崩溃、数据丢失系统不稳定。在本文中,我
    的头像 发表于 12-27 16:27 6272次阅读