分享

stm32 void HardFaultException(void)(

 wfsy1983 2011-05-18

用过stm32的人应该会遇到过程序死机的情况吧,而且会发现会运行到void HardFaultException(void)这个handler这里。新手可能很难明白问题出现在哪里。

我在这里说说我遇到的情况,方便大家处理这种情况时有个思路。

我遇到的死机情况都是访问错误内存导致的。譬如说你定义了一个数组:int array[3],count=0;

你在程序中总是运行count++;而没有对count的值就行限制,结果count>=3;那么你访问array数组时用

array[count];那么程序就会出错,然后就会跑到void HardFaultException(void)这里。

我遇到的运行到void HardFaultException(void)的情况几乎都是类似的情况导致的。

所以一旦运行到void HardFaultException(void),首先要检查的就是是否出现访问内存的错误。

 

还有的就是所有被除能的fault都会上访成为hardfault

MemManage fault   存储器管理fault,MPU 访问犯规以及访问非法位置
总线   fault 总线错误(预取流产(Abort)或数据流产)
用法(usage)  Fault

所以上面的这些fault如果被除能了就会上访成为hardfault

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多