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

STM32F103RCT6自动擦除FLASH问题

[复制链接]
仅此而已好吗 提问时间:2018-12-13 11:35 /
本人最近在使用STM32F103RCT6这款芯片做产品,但是发现有个别芯片出现在掉点瞬间有上电时,MCU自动擦除了第一个FLASH扇区现象,导致产品变砖.而且这个现象是可以复现的.而恰巧这个又是发个顾客的样品....我将出现问题的产品更换过MCU, 此现象没有复现.  把更换下来的MCU换到另一个正常的产品上, 此现象复现.由此推测此问题是跟随MCU的.

请问有人遇到过这个现象吗?怎么破?

收藏 评论18 发布时间:2018-12-13 11:35

举报

18个回答
watershade 回答时间:2018-12-17 12:26:07
看别人的问题能提高经验。但是Flash被擦除的问题,还没有发现过。
好了言归正传,因为不了解你的项目。下面的只是讲一些思路。
1、你的程序中是否有擦除Flash的程序。或者说你的程序中是否有IAP和模拟EEPROM的程序?我认为MCU缺陷导致擦除Flash的情况可能性不大。
      如果里面有对Flash的擦除操作。那么问题很大一部分就出现在这里。基本上变砖的机理是:我擦除了旧的。新的写入故障。然后程序又是从故障那里执行的。
2、想必你应该是用工具把Flash 读回比较了吧?确定是0X08000000的第一个片区错误了吗。这个扇区存储了中断向量表。我认为不可能删除的。请提供一下删除的位置。


评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

五哥1 回答时间:2018-12-17 12:40:40
好吧,我来说下,凭良心说,每个大公司的产品应当是完美无缺,但是事实上每一批都和其他批次有小的差异,所有产品不可能是100%良好的,即使国家印刷的钞票,能用于流通的,都发现了有瑕疵的,你恰巧碰到了千年不遇的有瑕疵的产品,别扔了这个芯片,也许将来因为它的稀有性,而变得有价值。最后说下,希望你没有买到假的芯片,毕竟国产的相同内核,功能完全一样,引脚完全一致的芯片价格上是有差异的。现在技术在芯片上重新打个标,我也能做到。

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

七哥 回答时间:2018-12-17 09:16:12
从上下文推测,你说的Flash应该是MCU内部Flash,而不是外挂Flash。
以前从没出现过Flash内容丢失问题,那么你的Flash内容丢失大概是多大机率?
原理图、程序工程请附上。一般是不按套路出牌导致的。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

wenyangzeng 回答时间:2018-12-13 11:59:49
代码应该避开意外掉电时去执行写flash的操作

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

馒头弟 回答时间:2018-12-17 09:31:50
这一段话错字有点多啊,你程序有写flash的地方看一下,有什么意外事件

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

网络孤客 回答时间:2018-12-17 09:55:30
wenyangzeng 发表于 2018-12-13 11:59
代码应该避开意外掉电时去执行写flash的操作

这个如何避免?
wenyangzeng 回答时间:2018-12-17 10:00:54
本帖最后由 wenyangzeng 于 2018-12-17 10:09 编辑

1、避免频繁对Flash写大量数据,2、双重数据备份
网络孤客 回答时间:2018-12-17 10:59:06
wenyangzeng 发表于 2018-12-17 10:00
1、避免频繁对Flash写大量数据,2、双重数据备份

这只能降低风险,而不能避免。
看来还是要从硬件上去解决。
大陶 回答时间:2018-12-17 11:08:25
看一下程序区的代码量,如果用到了内部FLASH存储,查看一下是不是占用了程序的代码。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

watershade 回答时间:2018-12-17 20:47:24
五哥1 发表于 2018-12-17 12:40
好吧,我来说下,凭良心说,每个大公司的产品应当是完美无缺,但是事实上每一批都和其他批次有小的差异,所 ...

所以你委婉的告诉了这位朋友。他用了假的STM32?
五哥1 回答时间:2018-12-18 23:27:27
watershade 发表于 2018-12-17 20:47
所以你委婉的告诉了这位朋友。他用了假的STM32?

可能性很大,GD32F103RC的性能和可靠性你知道的。
仅此而已好吗 回答时间:2018-12-26 18:26:36
wenyangzeng 发表于 2018-12-13 11:59
代码应该避开意外掉电时去执行写flash的操作

这上下电的时候没有对FLASH进行擦除和写操作
仅此而已好吗 回答时间:2018-12-26 18:27:25
wenyangzeng 发表于 2018-12-17 10:00
1、避免频繁对Flash写大量数据,2、双重数据备份

我说的是程序区丢失,不是自定义的数据区
仅此而已好吗 回答时间:2018-12-26 18:27:41
dataozi 发表于 2018-12-17 11:08
看一下程序区的代码量,如果用到了内部FLASH存储,查看一下是不是占用了程序的代码。 ...

没有
12下一页
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版