遇到问题,rt系统运行久了finsh线程好像就死了
最近发现搞的一个系统,在RT系统上做的软件,刚上电时finsh运行好好的,系统跑上几天后(时间不确定),finsh就不起作用了,没有任何反应,而同时其他线程都好好的运行着。如果按下复位键重新运行,finsh又好了。。有遇到过的么? 刚开始学习RT,不清楚,帮顶~~~~希望有人出来解释一下,你学习的时候,把源码都看了吗?还是只看了如何应用的文档? zhanyanqiang 发表于 2016-7-20 21:22
刚开始学习RT,不清楚,帮顶~~~~希望有人出来解释一下,你学习的时候,把源码都看了吗?还是只看了如何应用 ...
目前也只在一两个项目上用过。只看了应用部分。源码没看。
不过这是个逐步深入的过程,用过了,就会慢慢对部分源码熟悉。比如我要用到软件定时器,就会大概看看相关的源码。 可能有优先级高于finsh线程一直没有让出CPU。
可以暂时把fiinsh的优先级调为0,然后 list_thread() 列出所有线程看看有没有一直为ready的 zhanyanqiang 发表于 2016-7-20 21:22
刚开始学习RT,不清楚,帮顶~~~~希望有人出来解释一下,你学习的时候,把源码都看了吗?还是只看了如何应用 ...
要先会用,而后再根据兴趣深入
换句话说,你要先知道 RTOS 的知识,先用起来。 除了优先级问题,还有一个疑点,就是 FINSH 所依赖的设备是否正常,不要因为设备驱动问题,导致无法唤醒 FINSH。 aozima 发表于 2016-7-21 00:52
可能有优先级高于finsh线程一直没有让出CPU。
可以暂时把fiinsh的优先级调为0,然后 list_thread() 列出所 ...
在哪里设?一直没找着。。 security 发表于 2016-7-21 08:22
除了优先级问题,还有一个疑点,就是 FINSH 所依赖的设备是否正常,不要因为设备驱动问题,导致无法唤醒 FI ...
这个串口在finsh不能用的时候还能往外发东西,至于是不是接收部分挂了就不知道了。。。因为每复位一次要一两天以后才出现问题,暂时还无法验证。 bangbangji 发表于 2016-7-21 22:12
在哪里设?一直没找着。。
你搜索一下 FINSH_THREAD_PRIORITY 的定义吧 bangbangji 发表于 2016-7-21 22:17
这个串口在finsh不能用的时候还能往外发东西,至于是不是接收部分挂了就不知道了。。。因为每复位一次要 ...
你可以在接收时,做一些轻负担的、易观察的动作,例如让 LED 闪烁,就可以观察出串口接收是否还正常
期待你的最终答案~ security 发表于 2016-7-22 08:24
你可以在接收时,做一些轻负担的、易观察的动作,例如让 LED 闪烁,就可以观察出串口接收是否还正常
期待 ...
目前已经确定是线程被阻塞了,我放了一个比finsh优先级低的LED闪烁线程,出故障时LED也不闪了。应该是被某个高优先级的线程把时间都占了。 有意思!!!
我在玩wrtnode 里面的rtt好像也是出现类似现象,里面自己写了一个线程,刚运行时OK,过一段时间后,finsh (spi接口的)就死掉了,在wrtnode里面就没法都与rtt桥接的spi数据,没法激活finsh,估计也被阻塞了。我也弄个低于finsh的led线程试试!!!
security 发表于 2016-7-22 08:24
你可以在接收时,做一些轻负担的、易观察的动作,例如让 LED 闪烁,就可以观察出串口接收是否还正常
期待 ...
目前发现新情况,比finsh优先级高的led能运行,而这个led与finsh的优先级之间没有其他线程。比它低的led无法运行。感觉还是finsh自己死了的样子。。。
目前还在实验。由于要很长时间才出一次,进展比较慢。 duxingkei 发表于 2016-7-24 22:47
有意思!!!
我在玩wrtnode 里面的rtt好像也是出现类似现象,里面自己写了一个线程,刚运行时OK,过一段 ...
目前发现新情况,比finsh优先级高的led能运行,而这个led与finsh的优先级之间没有其他线程。比它低的led无法运行。感觉还是finsh自己死了的样子。。。
目前还在实验。由于要很长时间才出一次,进展比较慢。 不知道楼主试验怎么样了,估计得仔细检查里面的等待部分 我之前也碰到过,后来没找出原因。导致我没敢把RT用在产品里。 a136498491 发表于 2016-9-1 20:59
不知道楼主试验怎么样了,估计得仔细检查里面的等待部分
因为精力有限,没有深入下去。实际使用时直接禁用finsh了。。。问题应该在finsh这里,不用它的话LED闪的线程用很低的优先级也可以保持一直闪的状态。 要不就是finsh内部有bug
页:
[1]