打印
[其他ST产品]

巧用STM32 硬件错误函数HardFault_Handler调试和保护系统

[复制链接]
590|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kepe|  楼主 | 2023-1-30 13:46 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
巧用STM32 硬件错误函数HardFault_Handler调试和保护系统
我们在使用STM32的前期调试系统的过程中,或则是程序正式运行过程中,可能会由于逻辑出错,或是内存异常访问,造成系统进入硬件错误中断HardFaultException。(比如越界访问、指针异常以及别的原因,造成MCU进入异常中断)
我们此时可以利用这个中断来进行调试,更重要的是可以在这里面做保护,尽量降低风险。
具体使用:

STM32 的启动文件里,有“硬件错误中断函数”。


使用特权

评论回复
沙发
kepe|  楼主 | 2023-1-30 13:48 | 只看该作者
作为调试
当我们的程序已经发生硬件错误时。只要实现“硬件错误中断函数”的具体内容,并在里面输出你所需要检测的变量。
比如我的函数里,调试信息是简单的通过串口输出“HF”字符,用以提示程序进入硬件异常。
一旦程序发生硬件错误,则函数会运行到这,通过调试信息就可以知道产生“硬件错误”。
同理,对应的上位机要和下位机定个简易协议接收到某些数据,就是发生异常了。

使用特权

评论回复
板凳
kepe|  楼主 | 2023-1-30 13:54 | 只看该作者
如下图:

系统先正常运行。接着定义个野指针随意执行,故意产生异常。使系统进入硬件错误异常中断去执行保护。

使用特权

评论回复
地板
kepe|  楼主 | 2023-1-30 16:06 | 只看该作者
作系统保护
如果控制的设备和我一样,是大电压、大功率设备,则进入硬件错误异常时,可以先通知上位机发生异常,并反馈几个重要参数。最后再给高压系统断电,起到保护作用或者重启系统。

使用特权

评论回复
5
kepe|  楼主 | 2023-1-30 16:11 | 只看该作者

使用特权

评论回复
6
kepe|  楼主 | 2023-1-30 16:12 | 只看该作者
当然这个函数具体起到什么作用,可根据实际灵活应用。最重要的是要保障人身安全以及保护系统。
以上就是如何利用STM32 硬件错误函数HardFault_Handler调试和保护系统的方法。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

207

帖子

0

粉丝