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

STM32L4 内部 Flash 写操作 ECCD 错误

[复制链接]
murphyzhao 提问时间:2018-8-30 15:46 /
STM32L4 内部 Flash 写操作 ECCD 错误


使用的芯片型号 STM32L475VE,使用 HAL 库 `HAL_FLASH_Program` API 对 内部 Flash 进行编程,出现 ECCD 错误。

返回错误的代码摘要如下:(在 __HAL_FLASH_GET_FLAG(FLASH_FLAG_ECCD) 时返回错误
  1. HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout)
  2. {

  3.      if ((__HAL_FLASH_GET_FLAG(FLASH_FLAG_ECCD)))
  4.   {
  5.     /*Save the error code*/
  6.     FLASH_SetErrorCode();
  7.    
  8.     return HAL_ERROR;
  9.   }
  10. }
复制代码
求助相关经验的开发者,请问如何失能 ECCD 检查,或者出现 ECCD 错误如何处理让程序继续运行?(在不注释上面代码的情况下)

非常感谢

收藏 评论3 发布时间:2018-8-30 15:46

举报

3个回答
feixiang20 回答时间:2018-8-31 01:11:21
找了很多帖子,不解,不知异常捕捉处理,只能给你2个帖子参考参考。另外要说,你也可以先简化代码,从中找到可能性问题。
stm32l476 内部flash HAL库操作方法
http://blog.csdn.net/nicholaszao/article/details/79734480
STM32CubeMX Hal库的一些坑
http://blog.csdn.net/u010217338/article/details/70139672

评分

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

查看全部评分

murphyzhao 回答时间:2018-8-30 15:51:01
在 ST 论坛找到相似问题,但未能解决 ECCD 问题。请教论坛内的大牛,谢谢。

引用 ST 论坛相似的问题:

ST 论坛 ECCD 问题
murphyzhao 回答时间:2018-8-31 14:19:25
feixiang20 发表于 2018-8-31 01:11
找了很多帖子,不解,不知异常捕捉处理,只能给你2个帖子参考参考。另外要说,你也可以先简化代码,从中找 ...

感谢 feixiang20,这两个帖子给了很大的起启示。

Flash ECCD 问题已经确定,在对 flash 连续写的过程,ECC 纠错检查会开启,如果这个时候,你往已经写过的区块更新数据(不擦除,再次写),就会触发ECC错误。

我是这么理解的,因为 ECC 想帮你纠错,但这又是你主观上的操作,且ECC 监测到错误超过了2个,无法完成纠错,就上报了异常。
要想避免 ECCD 错误,就严格遵守 先擦后写 的原则。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版