遇到的STM32上FreeRTOS系统死机(假死)问题和status & (SDIO_FLAG_CCRCFAIL | SDIO_FLAG_CMDREND | SDIO_FLAG_CTIMEOUT

我在调试的时候还遇到SD卡出现了程序一直死循环在status & (SDIO_FLAG_CCRCFAIL | SDIO_FLAG_CMDREND | SDIO_FLAG_CTIMEOUT中,后来才发现是由于SD卡没有初始化导致的。


今天调试遇到一个FreeRTOS系统死机的问题,但是串口2的中断还在继续接收发送,可以确定不是硬件死机,后来用JTAG进行调试检测,在call stack + locals一栏中发现系统死在串口6的中断循环中(程序中使用了2个串口)

原因分析:可能时由于接收中断太快,CPU处理不过来,导致系统无法调度,造成假死的现象。

解决办法:

1.将与其对接的模块发送速度降低

2.将接收到的数据通过消息队列发送出去,在其他的任务里进行处理。

你可能感兴趣的:(调试中的问题积累)