鬼魅一样的 Hard Fault.pdf

  • 浏览量:1693
  • 下载量:17
  • 资料大小:289.32 KB
  • 日期:2014-04-14
  • 上传者:Eagleson
  • 分享
  • 评论
  • 举报
  • 收藏

资料描述

    stm32出现hardfault_handler故障的原因主要有两个方面:


    1、内存溢出或者访问越界。这个需要自己写程序的时候规范代码,遇到了需要慢慢排查。


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


    出现问题时排查的方法:



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


    __asm void wait()
    {
          bx lr
    }


     


    void hardfault_handler(void)
    {
        /* go to infinite loop when hard fault exception occurs */
           wait();
    }


    附件是st官方的一个文档。说的也很不错
评论(0)

登录后可评论,请 登录注册

   
相关资料
换一换