GD32/STM32,如何故意触发HardFault_Handler。

[复制链接]
385|8
 楼主 | 2019-3-7 10:39 | 显示全部楼层 |阅读模式
如题,GD32/STM32,如何故意触发HardFault_Handler。

有些偶然性的错误,会对系统造成严重影响。
一旦发生,想直接让程序,死在HardFault_Handler,并在里面做保护。

但不知道,怎么像普通中断那样,触发HardFault_Handler。
| 2019-3-7 21:28 | 显示全部楼层
内存越界试试, 指针访问数组 超过数组长度。 进行赋值, 我跑USCOSII的时候,也不知道咋滴 就进HardFault  忘记了, 任务堆栈设置太小也会进。

使用道具

评论回复
| 2019-3-8 20:56 | 显示全部楼层
这简单,定义一个函数指针赋值为0,然后执行

使用道具

评论回复
| 2019-3-23 00:15 | 显示全部楼层
这个只能在这个中断里面做规避处理的

使用道具

评论回复
| 2019-3-23 20:34 | 显示全部楼层
这个的检查下硬件方面是否有故障的了

使用道具

评论回复
| 2019-3-28 17:12 | 显示全部楼层
lvben5d 发表于 2019-3-7 21:28
内存越界试试, 指针访问数组 超过数组长度。 进行赋值, 我跑USCOSII的时候,也不知道咋滴 就进HardFault  ...

同意,还有一些可能,就是外设的时钟没开启,就强制访问外设的,也会导致HardFault_Handler。

使用道具

评论回复
| 2019-3-28 17:13 | 显示全部楼层
baimiaocun2015 发表于 2019-3-23 20:34
这个的检查下硬件方面是否有故障的了

通常这种情况和硬件没关系,大部分是软件的问题。

使用道具

评论回复
| 2019-3-28 17:13 | 显示全部楼层
vibra2016 发表于 2019-3-23 00:15
这个只能在这个中断里面做规避处理的

网上有篇文章,可以从发生错误的指针那里,反推哪里出错的。

使用道具

评论回复
| 2019-3-28 17:29 | 显示全部楼层
sdggg 发表于 2019-3-8 20:56
这简单,定义一个函数指针赋值为0,然后执行

这样会触发硬件错误吗,怀疑?

使用道具

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

快速回复 返回顶部 返回列表