遇到HardFault_Handler时,往往不知所措,一般情况是心态崩了,闲话少说,如何解决问题才是关键!

  第一种办法是:keil在debug的时候,有call stack窗口,它的作用是记录程序进出堆栈的过程,通过查看里面的内容,找到死机前函数的调用过程,往往问题就在这附近!但是有的时候调出call stack窗口时,里面除了HardFault_Handler没有别的(是不是心态崩了,刚刚告诉你一个救命稻草,啪,稻草断了)。为什么没有东西,我现在也不太清楚,但是我尝试过换个jlink、重新装个新版keil都不起作用,大家知道的话可以给我留言!这种方法不行,可以试试第二种方法。

  第二种方法是:查看register,sp,调出memory1........这方法尝试过,但是没有深入理解精髓,就不细谈了,详细操作请查看他人文章吧

  第三种方法是:排除法,一点点注释代码,直到注释到它后,程序正常运行了,就知道是它出了问题,这个需要耐心,我在调试的过程中,函数嵌套比较多,我就一层一层排查,最终即使你在在怎么不相信会是它出了问题,那就是它出了问题!这就是反向思维,按照正常的逻辑(我们以为正确的),到最后却是错了,那你怎么可能通过正向思维找到问题呢!!!

未完待续...........

调试是们学问,找出发现的问题,需要耐心,保持心态,这是一门内功,慢慢领悟吧!

 

如果,感到此时的自己很辛苦,那告诉自己:容易走的都是下坡路。坚持住,因为你正在走上坡路,走过去,你就一定会有进步。如果,你正在埋怨命运不眷顾,开导自己:命,是失败者的借口;运,是成功者的谦词。命运从来都是掌握在自己的手中,埋怨,只是一种懦弱的表现;努力,才是人生的态度。