天马行空 发表于 2019-2-20 16:34:43

请教版主,FreeRTOS不停的通过串口打印错误信息是怎么回事?

FreeRTOS版本9.0,FreeRTOSConfig配置参照了安富莱的例程,配置文件里的那两行断言代码以前是注释掉的,系统跑的很正常,没发现啥毛病。

今天调试程序,无意中启用了那2行断言代码,却发现串口终端上不停的打印信息。
这是信息是什么意思?FREERTOS配置有误?



以下是FREERTOS中断配置和PORT.C文件中的错误输出代码





eric2013 发表于 2019-2-20 16:38:17

把这个帖子看一下。这个是因为你在不受FreeRTOS管理的中断服务程序里面调用了以FromISR结尾的API导致的。

第12章 FreeRTOS中断优先级配置(重要)
http://www.armbbs.cn/forum.php?mod=viewthread&tid=21094&fromuid=58

或者直接看PDF文档第12章也行

天马行空 发表于 2019-2-20 17:52:49

eric2013 发表于 2019-2-20 16:38
把这个帖子看一下。这个是因为你在不受FreeRTOS管理的中断服务程序里面调用了以FromISR结尾的API导致的。
...

谢谢版主的解答!
USART和CAN通讯的中断接收是用了队列,确实都是FromISR结尾的函数,USART和CAN中断接收优先级分别是6和7。

我现在改配置中断分组为4,configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY1,这样1~15个抢占优先级都归FREERTOS管理了,对吧?可为什么还是打印错误信息?

eric2013 发表于 2019-2-20 17:56:32

天马行空 发表于 2019-2-20 17:52
谢谢版主的解答!
USART和CAN通讯的中断接收是用了队列,确实都是FromISR结尾的函数,USART和CAN中断接 ...

是不是FreeRTOS还没有启动,中断就执行了,要防止这种情况。

天马行空 发表于 2019-2-22 11:55:51

问题解决了,正如版主所说的那样“在不受FreeRTOS管理的中断服务程序里面调用了以FromISR结尾的API导致的”。
程序中有用到定时器中断,在定时器中断中调用FREERTOS的函数不正确,改过来就好了。

eric2013 发表于 2019-2-22 12:11:30

天马行空 发表于 2019-2-22 11:55
问题解决了,正如版主所说的那样“在不受FreeRTOS管理的中断服务程序里面调用了以FromISR结尾的API导致的” ...

:handshake
页: [1]
查看完整版本: 请教版主,FreeRTOS不停的通过串口打印错误信息是怎么回事?