• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

怎么快速定位HardFault_Handler是哪里引起的

我是爆米花啊 2017-11-08 浏览量:918
调试stm32遇到HardFault_Handler,一般怎么查找问题在哪?STM32有相关的寄存器可以明确指示发生哪种错误吗
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案

其他答案 数量:5
  • HardFault_Handler一般就是内存的问题,或是时钟PLL的问题。
    你如果是使用了ucos 之类的,出这个问题可能会比较多的。
    大概就是从这几个方面去找。
    有的时候并不是具体的某个位置出了这个错,而是在任务调度时出的(使用系统时),这就要一个任务一个任务的去排查。
    • 发布于2017-11-08
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :https://www.faulhaber.com/fileadmin/Import/Media/EN_MCST3601_FPS.pdf 回复

  • STM32出现HardFault_Handler故障的原因主要有两个方面:
    1、内存溢出或者访问越界。这个需要自己写程序的时候规范代码,遇到了需要慢慢排查。

    2、堆栈溢出。增加堆栈的大小。

    默认的HardFault_Handler处理方法不是B .这样的死循环么?楼主将它改成BXLR直接返回的形式。然后在这条语句打个断点,一旦在断点中停下来,说明出错了,然后再返回,就可以返回到出错的位置的下一条语句那儿

    http://www.51hei.com/bbs/dpj-39846-1.html

    • 发布于2017-11-08
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :ABM11W-48.0000MHZ-7-D1X-T3 详细说明 :48MHz±10ppm晶体7pF 40 Ohms 4-SMD,无铅 回复

  • 一般都是指针引起 的错误,或是内存分配问题。从这两个方面查找


    • 发布于2017-11-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 楼上的很详细,学习了
    • 发布于2017-11-16
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

怎么快速定位HardFault_Handler是哪里引起的