|
我也遇到了,其中一个任务突然消失了; 我这边应该是内存的原因,因为刚好改了一些数据包的长度之后就出现这种现象;用回之前的老版本程序就没问题; 具体原因还不知道,继续查看分析; |
|
我也出现了同样的情况。 请求消息队列的任务某一个时刻后持续就绪,调度次数不再增加。 |
roarghy 发表于 2018-5-10 12:57 建议你给成Free RTOS 这个好用 结合stm32cubemx 开发起来还是很快的 如果你坚持使用ucos 建议你重新移植一下 |
| 相对来说Frtos 好用,如果对 UCOS不是很熟悉的新手,经常陌名BUG问题。特别是这个信号,邮箱。UCOS 不像Frtos 有专门用于中断中的ISR 信号操作,所以在UCOS中最好不要在中断进行信号量操作, |
|
没看到源码部分,不好判断问题,以我看来你这是出现任务间死锁了。尝试办法,删除其他多余任务,只保留一个收发。 |
|
本帖最后由 roarghy 于 2018-5-10 12:59 编辑 目前进展:在其他任务中添加语句:发现未处理的消息过多时把显示任务挂起在解挂。这方法可纠正显示任务不运行的问题。但是没治本。 在发生异常的情况下,查看显示任务的TCB的成员变量,发现其处于就绪状态且没有等待任何内核对象,这个状态只有在运行显示任务的时候才可能出现。推断应该是任务调度执行显示任务,在显示任务执行期间偶然发生了“什么事情”导致本任务出现异常的。通过将其挂起再解挂的方法“纠正”了这个异常。 下一步我打算好好看看显示任务内部,逐块排查最终找到原因。但这个显示任务的代码量好大好大~~~~ |
hanzixi_angel 发表于 2018-5-10 12:15 是正点原子103的板子,然后我改了改用在了105上的 |
roarghy 发表于 2018-5-9 15:31 你用的是不是原子大哥的移植好的模板? |
| BD |
|
又进行了一些测试,发现:RTC的消息不停的在发布,直到满。而这期间显示任务一直处于就绪状态。好像显示任务“看不到”发布的消息。并且显示任务处于就绪状态一直得不到执行,好像任务调度把这个任务给“忘记了”一样,而显示任务优先级低的任务都在执行。总之一句话,好像显示任务消失了一样。 好奇怪~~~ |
/1
|手机版|OpenEdv-开源电子网
( 粤ICP备12000418号-1 )
GMT+8, 2026-8-23 17:36
Powered by OpenEdv-开源电子网
© 2001-2030 OpenEdv-开源电子网