276_浮点运算导致FreeRTOS卡在xQueueGiveFromISR

完整的S32K144的学习汇总如下:

https://github.com/GreyZhang/g_s32k144

    继续S32K144的学习,这一次整理一个我在学习中遇到的BUG。我的软件中有一个基于串口的printf功能,最初这个功能都是OK了。但是,当我增加了一个浮点运算之后,打印了一下之后不再打印了。使用调试器,查看到软件停在了xQueueGiveFromISR函数中。

276_浮点运算导致FreeRTOS卡在xQueueGiveFromISR_第1张图片

    由于的软件中没有队列的实际操作,我暂时是先把问题定位为浮点的使用。尝试了几种不同的使用方法后,还是不成功。感觉,OS这次的提示或许是有问题的。正好,IDE中有一个FreeRTOS的调试插件。查看了stack的使用,调用printf的任务基本上stack满了。第二次开始,连查看都无法成功了。猜测是stack不够,尝试做一个多一点的分配。

    上面是增加stack之后,软件恢复正常的效果。

    看起来,或许这算是FreeRTOS设计上的一个缺陷,问题的提示导向还是有问题的。

完整的S32K144的学习汇总如下:

https://github.com/GreyZhang/g_s32k144

你可能感兴趣的:(S32K,嵌入式,RTOS)