你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

FLASH数据莫名其妙被清零

[复制链接]
Ssenyzen 提问时间:2021-3-30 11:39 / 未解决
芯片:STM32F429ZGT6问题:flash数据貌似被清零了  还是读出的时候就读错了 不确定

我固定在0x08010000地址开始开辟了一个64k大小的数组 用来存数据    这个地址只有在通信的时候才会置位标志位,把数据写到0x1000 0000 地址上 , 然后在掉电的时候会把0x10000000的数据写入到0x08010000这个地址(已确定掉电时间足够把数据写完,而且写过之后下次不会再触发写入只有通信的时候操作了才会写入),上电的时候会把0x08010000地址数据再次读到0x10000000 地址上
现在在客户现场用了好几个月都很正常,然后这几天出现前面有100多个字节被置为0了  现在没有任何找不到原因 ,问题很难复现, 想请论坛各位大佬们帮忙分析分析是什么原因造成的

收藏 评论7 发布时间:2021-3-30 11:39

举报

7个回答
study1234 回答时间:2021-3-30 11:47:07
FLASH写入是有KEY的
考虑换个思路,0x10000000前面部分是不是会被写成0
然后在写FLASH的时候自然把0带进去了
study1234 回答时间:2021-3-30 11:50:42
一般数据很重要的话,可以考虑校验机制
具体实现就不提了,这个不难
Ssenyzen 回答时间:2021-3-30 11:53:53
study1234 发表于 2021-3-30 11:47
FLASH写入是有KEY的
考虑换个思路,0x10000000前面部分是不是会被写成0
然后在写FLASH的时候自然把0带进去 ...

0x10000000地址的数据相当于用户编写的APP程序 ,只有在他编程的时候才会写入到flash  后续都不会去写入flash了 后续都是读取flash到  0x1000 0000 地址  (客户那边正常使用几个月后才出现),但是我程序读取的地方有个校验 判断前面数据不正确了 会给他恢复初始值这个时候才会在掉电的时候再写一次flash (我初始值只恢复重要的92个字节 所以我判断被清空了100多个字节因为92个字节后面还有几个字节是0)


奇迹 回答时间:2021-3-31 13:36:11
会不会是供电不稳定导致的异常呢
butterflyspring 回答时间:2021-3-31 17:45:36
会不会是快速上下电引起的呢? 或者系统负载变化,引起掉电过快一下。 另外FLASH可以烧写的次数不多,经常上下电去改写会出问题的
Ssenyzen 回答时间:2021-3-31 19:40:54
butterflyspring 发表于 2021-3-31 17:45
会不会是快速上下电引起的呢? 或者系统负载变化,引起掉电过快一下。 另外FLASH可以烧写的次数不多,经常上 ...

快速上下电是不操作FLASH的    flash只有在客户修改了app的情况下才写 平时上电只是把 flash内容读取到ram来执行
Ssenyzen 回答时间:2021-3-31 19:43:28
奇迹 发表于 2021-3-31 13:36
会不会是供电不稳定导致的异常呢

应该不会 因为控制板没有更换  只是我手动将数据改对后 又能继续跑机器
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版