本文主要是介绍调用delay_ms函数进入hardfault_handler处理硬件错误中断,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、大多是情况下hardfault_handler处理硬件错误中断的解决办法
1.检查代码中是否有指针未初始化或者越界访问的情况。
2.检查是否有堆栈溢出的情况,可以通过增加堆栈大小或者减少函数调用深度来解决。
3.检查是否有中断优先级设置不当的情况,可以通过调整中断优先级来解决。
4.检查是否有外设配置不当的情况,可以通过重新配置外设来解决。
5.检查是否有硬件故障,例如芯片损坏等情况,可以更换芯片来解决。
二、针对博主出来问题解决办法
移植freeRTOS之后,会出现SysTick_Handler中断函数的重复定义,此时我们一般会屏蔽我们自己写的SysTick_Handler中断处理函数,因为FreeRTOS的SysTick_Handler中断处理函数用于任务的调度,然后此时我们还在主函数里面调用delay_ms函数,调试过程中就会出现下面的硬件中断错误,但是如果我们屏蔽FreeRTOS中的SysTick_Handler中断处理函数,此时延时函数没有问题,所以针对FreeRTOS中的延时,我们需要采用freeRTOS的延时方法。
这篇关于调用delay_ms函数进入hardfault_handler处理硬件错误中断的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!