KEIL5调试卡死在HardFault_Handler函数中解决办法 实测有效

  • Post author:
  • Post category:其他


在调试KEIL5程序的时候,程序过一会一直卡在下面的函数中,这个问题一直困惑了好久。

void HardFault_Handler(void)

{


/* USER CODE BEGIN HardFault_IRQn 0 */

/* USER CODE END HardFault_IRQn 0 */

while (1)

{

/* USER CODE BEGIN W1_HardFault_IRQn 0 */

/* USER CODE END W1_HardFault_IRQn 0 */

}

}

我的引起的原因是串口接收中断函数中的一个数组存满了,超出了数组的界限。我将数组改成在存满的时候进行清零操作,从数组0下标开始存。网上说的一些原因是有道理的,即数组溢出或者内存溢出等,可以从这个方面去针对性的排查。目前,仍然没有太好的方法去寻找这个BUG。下面图中红圈1里面的数组溢出,然后我多加了红圈2里面的数组清0操作。就可以了



版权声明:本文为lileiyuan1985原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。