关于STM32异常的一些认识

2019-07-20 09:09发布


最近在学习FreeRTOS,在应用过程经常遇到一些问题,最头疼的就是属于系统异常导致死机问题。比如HardFault_Handler,经常是堆栈分配的太小,外部中断与系统中断优先级分配不合理等都容

易出现这些问题。

后来在网上搜索了一下资料。然后去腾讯课堂看《正点原子手把手教你学freertos实时操作系统》的Cortex-M中断管理(上、下)。

其中有讲解到系统异常。看到清单描述的15项系统异常清单时发现,这些异常不就是工程中stm32f4xx_it.c里面实现中断吗。

所以本人想着给该文件里的每个中断函数加上一条打印语句,这样通过串口可以看到程序是不是进行了这些异常,这样也有助于排查问题。

不知道其他网友是否有更好的排查问题的方法

下面是给HardFault_Handler中断函数加一条打印语句。其他异常类似


/**
  * @brief  This function handles Hard Fault exception.
  * @param  None
  * @retval None
  */
void HardFault_Handler(void)
{
    printf("HardFault^ ");
  /* Go to infinite loop when Hard Fault exception occurs */
  while (1)
  {
  }
}


0条回答

一周热门 更多>