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

    文章

    1759

    浏览量

    155903
  • 数据
    +关注

    关注

    8

    文章

    7348

    浏览量

    95020

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Vivado+Vitis将程序固化的Flash操作流程

    ZYNQ 的程序固化是指将程序代码永久存储到非易失性存储器中,使系统上电后能自动加载运行的过程。主要固化方式:QSPI Flash固化:常用方式,容量小,如启动代码、FPGA 配置。NAND
    的头像 发表于 01-20 16:17 880次阅读
    Vivado+Vitis将<b class='flag-5'>程序</b>固化的<b class='flag-5'>Flash</b>的<b class='flag-5'>操作</b>流程

    CW32F030 FLASH的页擦除操作

    FLASH_ICR.PAGELOCK 为 0 来清FLASH_ISR.PAGELOCK 中断标志。如果程序FLASH 中运行,且对 PC(程序
    发表于 12-15 06:26

    【瑞萨RA6E2地奇星开发板试用】内部Code flash和Data flash写入数据并通过OLED显示

    \" 的操作原则: 擦除:将指定 Flash 块的所有字节置为 0xFF(空白状态); 写入:仅能将 0xFF 位改写为 0,无法直接将 0 改写为 1; 验证:读取写入后的数据与原始
    发表于 12-12 20:15

    CW32L052 FLASH存储器介绍

    均为 0xFF。 如果对未解锁的 FLASH 页面进行页擦除操作,或者对*正在运行的程序[^1]*进行擦除操作,会操作失败,产生
    发表于 12-05 08:22

    操作的常见错误与应对策略

    (一)误操作其他位的防范 在进行位操作时,一个常见的错误就是误操作其他位,这可能导致系统出现意想不到的行为。为了避免这种错误,使用位掩码是
    发表于 11-24 07:50

    Cortex-M0+处理器的HardFault错误介绍

    在ARM处理器中,如果一个程序产生了错误并且处理器检测到,就会产生错误异常。Cortex-M0+处理器只有一种异常用以处理错误:HardF
    的头像 发表于 10-14 10:50 3647次阅读
    Cortex-M0+处理器的HardFault<b class='flag-5'>错误</b>介绍

    分析负载特性时,有哪些常见的错误误区?

    分析负载特性时,很多人会因 “想当然套用经验”“忽略实际场景细节” “混淆概念” 导致判断偏差,进而让报警阈值调整失效(如误报、漏报)。以下是 6 个最常见的错误 / 误区,附错误表现、危害
    的头像 发表于 10-10 17:03 1094次阅读

    STM32C011开发(3)----Flash操作

    STM32C011 系列微控制器内置 Flash 存储器,支持程序存储与数据保存,具备页面擦除、双字写入、读写保护等功能。本文将简要介绍 STM32C011 的 Flash 结构与特性,并通过实际代码示例,讲解
    的头像 发表于 09-18 16:48 5276次阅读
    STM32C011开发(3)----<b class='flag-5'>Flash</b><b class='flag-5'>操作</b>

    知晓常见的铜缆安装错误并避免

    铜缆(如网线、电话线等)是网络和数据传输的基础设施,但在安装过程中,由于操作不当忽视细节,常出现各种错误,导致网络性能下降甚至故障。以下是常见的铜缆安装
    的头像 发表于 09-16 10:42 1289次阅读

    SPI NOR FLASH是什么,与SPI NAND Flash的区别

    存储一位数据 (01) ,可以直接寻址,寻址速度非常快。SPI NOR FLASH支持全双工、单工以及半双工传输方式,广泛应用于嵌入式系统中,如Bootloader、操作系统内核等
    的头像 发表于 08-21 09:26 1871次阅读

    接光纤接头时需要避免什么操作

    接光纤接头时,操作不当会导致信号损耗增加、连接不稳定甚至光纤损坏,因此需严格避免以下关键错误操作,并遵循规范流程: 一、清洁与防护类错误 未彻底清洁光纤端面 风险:灰尘、油污
    的头像 发表于 07-15 10:24 1574次阅读

    电商API常见错误排查指南:避免集成陷阱

      在电商平台开发中,API集成是连接系统、实现数据交换的核心环节。然而,许多开发者在集成过程中常遇到错误,导致项目延迟、数据丢失或用户体验下降。本文将逐步介绍常见错误类型、排查方法以及预防策略
    的头像 发表于 07-11 14:21 2296次阅读
    电商API常见<b class='flag-5'>错误</b>排查指南:避免集成陷阱

    oracle数据恢复—oracle数据库误执行错误truncate命令如何恢复数据?

    oracle数据库误执行truncate命令导致数据丢失是一种常见情况。通常情况下,oracle数据库误操作删除数据只需要通过备份恢复数据即可。也会碰到一些特殊情况,例如数据库备份无法使用或者还原
    的头像 发表于 06-05 16:01 1787次阅读
    oracle数据恢复—oracle数据库误执行<b class='flag-5'>错误</b>truncate命令如何恢复数据?

    存储示波器触发电平设置不当会导致什么后果?

    ±0.001 过高(4V)随机值随机值 二、设置不当的常见原因 [td]原因分类具体场景 用户误操作手动调节触发电平时误触旋钮,未根据信号幅值调整(如直接使用默认值0V)。 信号特性不匹配测量低幅值信号
    发表于 05-29 14:13

    MCU片上Flash

    保留能力,支持多次擦写操作,是MCU程序存储的核心介质。 主要类型‌ NOR Flash‌:支持随机访问,可直接运行代码,适用于实时性要求高的场景。 NAND Flash‌:需通过RA
    的头像 发表于 05-06 14:26 1549次阅读