搜索
bottom↓
回复: 17

遇到问题,rt系统运行久了finsh线程好像就死了

[复制链接]

出0入0汤圆

发表于 2016-7-20 20:58:26 | 显示全部楼层 |阅读模式
最近发现搞的一个系统,在RT系统上做的软件,刚上电时finsh运行好好的,系统跑上几天后(时间不确定),finsh就不起作用了,没有任何反应,而同时其他线程都好好的运行着。
如果按下复位键重新运行,finsh又好了。。有遇到过的么?

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入4汤圆

发表于 2016-7-20 21:22:18 | 显示全部楼层
刚开始学习RT,不清楚,帮顶~~~~希望有人出来解释一下,你学习的时候,把源码都看了吗?还是只看了如何应用的文档?

出0入0汤圆

 楼主| 发表于 2016-7-20 21:41:11 | 显示全部楼层
zhanyanqiang 发表于 2016-7-20 21:22
刚开始学习RT,不清楚,帮顶~~~~希望有人出来解释一下,你学习的时候,把源码都看了吗?还是只看了如何应用 ...

目前也只在一两个项目上用过。只看了应用部分。源码没看。
不过这是个逐步深入的过程,用过了,就会慢慢对部分源码熟悉。比如我要用到软件定时器,就会大概看看相关的源码。

出0入0汤圆

发表于 2016-7-21 00:52:27 | 显示全部楼层
可能有优先级高于finsh线程一直没有让出CPU。
可以暂时把fiinsh的优先级调为0,然后 list_thread() 列出所有线程看看有没有一直为ready的

出0入8汤圆

发表于 2016-7-21 08:20:53 | 显示全部楼层
zhanyanqiang 发表于 2016-7-20 21:22
刚开始学习RT,不清楚,帮顶~~~~希望有人出来解释一下,你学习的时候,把源码都看了吗?还是只看了如何应用 ...

要先会用,而后再根据兴趣深入
换句话说,你要先知道 RTOS 的知识,先用起来。

出0入8汤圆

发表于 2016-7-21 08:22:33 | 显示全部楼层
除了优先级问题,还有一个疑点,就是 FINSH 所依赖的设备是否正常,不要因为设备驱动问题,导致无法唤醒 FINSH。

出0入0汤圆

 楼主| 发表于 2016-7-21 22:12:54 | 显示全部楼层
aozima 发表于 2016-7-21 00:52
可能有优先级高于finsh线程一直没有让出CPU。
可以暂时把fiinsh的优先级调为0,然后 list_thread() 列出所 ...

在哪里设?一直没找着。。

出0入0汤圆

 楼主| 发表于 2016-7-21 22:17:26 | 显示全部楼层
security 发表于 2016-7-21 08:22
除了优先级问题,还有一个疑点,就是 FINSH 所依赖的设备是否正常,不要因为设备驱动问题,导致无法唤醒 FI ...

这个串口在finsh不能用的时候还能往外发东西,至于是不是接收部分挂了就不知道了。。。因为每复位一次要一两天以后才出现问题,暂时还无法验证。

出0入8汤圆

发表于 2016-7-22 08:21:53 | 显示全部楼层
bangbangji 发表于 2016-7-21 22:12
在哪里设?一直没找着。。

你搜索一下 FINSH_THREAD_PRIORITY 的定义吧

出0入8汤圆

发表于 2016-7-22 08:24:37 | 显示全部楼层
bangbangji 发表于 2016-7-21 22:17
这个串口在finsh不能用的时候还能往外发东西,至于是不是接收部分挂了就不知道了。。。因为每复位一次要 ...

你可以在接收时,做一些轻负担的、易观察的动作,例如让 LED 闪烁,就可以观察出串口接收是否还正常
期待你的最终答案~

出0入0汤圆

 楼主| 发表于 2016-7-23 19:19:57 | 显示全部楼层
security 发表于 2016-7-22 08:24
你可以在接收时,做一些轻负担的、易观察的动作,例如让 LED 闪烁,就可以观察出串口接收是否还正常
期待 ...

目前已经确定是线程被阻塞了,我放了一个比finsh优先级低的LED闪烁线程,出故障时LED也不闪了。应该是被某个高优先级的线程把时间都占了。

出0入0汤圆

发表于 2016-7-24 22:47:56 | 显示全部楼层
有意思!!!

我在玩wrtnode 里面的rtt好像也是出现类似现象,里面自己写了一个线程,刚运行时OK,过一段时间后,finsh (spi接口的)就死掉了,在wrtnode里面就没法都与rtt桥接的spi数据,没法激活finsh,估计也被阻塞了。我也弄个低于finsh的led线程试试!!!

出0入0汤圆

 楼主| 发表于 2016-7-24 23:35:57 | 显示全部楼层
security 发表于 2016-7-22 08:24
你可以在接收时,做一些轻负担的、易观察的动作,例如让 LED 闪烁,就可以观察出串口接收是否还正常
期待 ...

目前发现新情况,比finsh优先级高的led能运行,而这个led与finsh的优先级之间没有其他线程。比它低的led无法运行。感觉还是finsh自己死了的样子。。。
目前还在实验。由于要很长时间才出一次,进展比较慢。

出0入0汤圆

 楼主| 发表于 2016-7-24 23:36:14 | 显示全部楼层
duxingkei 发表于 2016-7-24 22:47
有意思!!!

我在玩wrtnode 里面的rtt好像也是出现类似现象,里面自己写了一个线程,刚运行时OK,过一段 ...

目前发现新情况,比finsh优先级高的led能运行,而这个led与finsh的优先级之间没有其他线程。比它低的led无法运行。感觉还是finsh自己死了的样子。。。
目前还在实验。由于要很长时间才出一次,进展比较慢。

出0入0汤圆

发表于 2016-9-1 20:59:58 | 显示全部楼层
不知道楼主试验怎么样了,估计得仔细检查里面的等待部分

出0入0汤圆

发表于 2016-9-2 10:11:05 | 显示全部楼层
我之前也碰到过,后来没找出原因。导致我没敢把RT用在产品里。

出0入0汤圆

 楼主| 发表于 2016-9-2 20:22:48 | 显示全部楼层
a136498491 发表于 2016-9-1 20:59
不知道楼主试验怎么样了,估计得仔细检查里面的等待部分

因为精力有限,没有深入下去。实际使用时直接禁用finsh了。。。问题应该在finsh这里,不用它的话LED闪的线程用很低的优先级也可以保持一直闪的状态。

出0入0汤圆

发表于 2016-10-26 11:25:44 | 显示全部楼层
要不就是finsh内部有bug
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 22:57

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表