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

操作内部FLASH导致进入HardFault

[复制链接]
海迹天涯 提问时间:2017-1-18 11:58 /
在做IAP升级程序的时候有段程序一执行就会跳入到HardFault_Handler中,求各位大神支个招,产生错误的代码如下:
PXDV9A@[5TZ`SMZKD3D[I{S.png
收藏 1 评论17 发布时间:2017-1-18 11:58

举报

17个回答
迷雾向前 回答时间:2017-1-20 11:29:13
是不是地址访问的问题? 如果 tempaddr 如果不能被4整除,还强制uint32_t*访问的话会出硬件异常。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

moyanming2013 回答时间:2017-1-18 12:26:23
本帖最后由 moyanming2013 于 2017-1-18 12:27 编辑

count如果是uint8,其值最大是255,那么永远也出不来for循环。
然后,tempaddr就会越位了。越位后访问了不该访问的地址,进而产生HardFault异常。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

海迹天涯 回答时间:2017-1-18 12:31:04
moyanming2013 发表于 2017-1-18 12:26
count如果是uint8,其值最大是255,那么永远也出不来for循环。
然后,tempaddr就会越位了。越位后访问了不 ...

是UINT32_T
zoomdy 回答时间:2017-1-18 12:43:39
你这个是什么核心的,如果是Cortex-M3及以上,可以查看SCB->CFSR, SCB->HFSR, SCB->MMFAR, SCB->BFAR这几个寄存器来确定出错的原因。如果是Cortex-M0,那么查看一下反汇编,看看执行的是什么指令。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

Dylan疾风闪电 回答时间:2017-1-18 12:44:37
需要限定 tempaddr 的取值范围,否则可能 读取 不存在/或者 其它异常的地址,导致错误发生

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

海迹天涯 回答时间:2017-1-18 13:36:02
zoomdy 发表于 2017-1-18 12:43
你这个是什么核心的,如果是Cortex-M3及以上,可以查看SCB->CFSR, SCB->HFSR, SCB->MMFAR, SCB->BFAR这几个 ...

STM32F051  M0内核的
海迹天涯 回答时间:2017-1-18 13:38:05
Dylan疾风闪电 发表于 2017-1-18 12:44
需要限定 tempaddr 的取值范围,否则可能 读取 不存在/或者 其它异常的地址,导致错误发生 ...

地址在上层函数中已经限定,这个子函数只管编程1Kb的内部flash,基本流程是先看看这1K的空间是否被写过,没写过直接编程,写过就先擦除再编程
moyanming2013 回答时间:2017-1-18 14:25:30

内部flash能这样直接读?不考虑总线时间吗?!
你可以一次性的读到一个内存中,然后在内存中再判断。
海迹天涯 回答时间:2017-1-18 15:12:32
moyanming2013 发表于 2017-1-18 14:25
内部flash能这样直接读?不考虑总线时间吗?!
你可以一次性的读到一个内存中,然后在内存中再判断。 ...

太占内存了,数据很大的,1024个字节
Dylan疾风闪电 回答时间:2017-1-19 19:24:38
海迹天涯 发表于 2017-1-18 13:38
地址在上层函数中已经限定,这个子函数只管编程1Kb的内部flash,基本流程是先看看这1K的空间是否被写过, ...
参考这样写:
  1.   for (i=0; i<len; i++)
  2.       {
  3.         if((*(volatile uint16_t*) (addr + (i<<1))) != pData[i])
  4.           return FALSE;
  5.       }
复制代码
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版