云恋夕阳 发表于 2019-3-9 14:49:34

FreeRTOS任务运行一段时间后无法运行了

请教一下各位大佬,我在用FreeRTOS做东西的时候,创建一个任务A,然后A等待一个任务事件标志,这个标志是在中断里面置位的,中断是20ms一次,现在是中断大概几万次之后任务A就无法再运行了,我仿真看设置标志的函数是一直返回成功的,函数用的是这个xTaskNotifyFromISR,不知道这是什么原因导致的,如果有人遇到过这种情况麻烦指导一下小弟,先谢谢了。

eric2013 发表于 2019-3-9 14:52:37

这种情况下,要先排查,仅创建一个启动任务,其它任务的创建先注释掉,然后呢中断不断发,看看是否有问题,如果有问题的话,基本就是你的程序模板或者哪里有问题了。

云恋夕阳 发表于 2019-3-9 15:00:38

eric2013 发表于 2019-3-9 14:52
这种情况下,要先排查,仅创建一个启动任务,其它任务的创建先注释掉,然后呢中断不断发,看看是否有问题, ...

硬汉哥,我这边是还有其他任务的,但是其他任务都没有事,都能正常执行,中断也是正常的,都能进,那个标志置位函数也一直返回的是成功。就是任务A不能执行了,根本跳不到那句等待任务标志量的函数里,

eric2013 发表于 2019-3-9 15:55:45

云恋夕阳 发表于 2019-3-9 15:00
硬汉哥,我这边是还有其他任务的,但是其他任务都没有事,都能正常执行,中断也是正常的,都能进,那个标 ...

依然是我前面说的,检测你的发送和接收函数标志,看是不是发送一直正常执行,而卡在你的接收里面某个地方,但是这个任务是正常的,仅仅是卡在某个位置执行不下去了。

这种情况基本就是你的这个任务设计问题了。

云恋夕阳 发表于 2019-3-9 16:04:49

eric2013 发表于 2019-3-9 15:55
依然是我前面说的,检测你的发送和接收函数标志,看是不是发送一直正常执行,而卡在你的接收里面某个地方 ...

好的,谢谢硬汉哥,我再调试一下。

云恋夕阳 发表于 2019-3-11 08:29:38

问题已经解决了,过来结了贴,好像是因为我中断函数执行的东西有点多,不过我测量过中断函数的执行时间,远远小于20ms的中断间隔。现在我换成中断里面只给中断处理任务发事件标志,然后在中断处理任务里面进行相应处理就不会出现这个问题了。

eric2013 发表于 2019-3-11 08:58:16

云恋夕阳 发表于 2019-3-11 08:29
问题已经解决了,过来结了贴,好像是因为我中断函数执行的东西有点多,不过我测量过中断函数的执行时间,远 ...

感谢告知最终原因。
页: [1]
查看完整版本: FreeRTOS任务运行一段时间后无法运行了