记一次处理rt-thread优先级低线程无法执行

最近升级了rt-thread的核心代码,从3.0正式发行不久后,rt-thread采用了KConfig的配置方式,因为以前搞过linux内核配置,所以对KConfig不算太陌生,rt-thread的配置界面用起来还是相当不错的,详细用法可以参考官方相关文档。
移置过程还是很顺利的就完成了,可以在程序调试的过程序中出现了相当诡异的现象,开始没有注意。一直认为是自己线程优先级未处理好,也没太在意。
诡异现象主要有以下两点:
1. 动态创建出来的任务,只能创建一次,下次再想创建相同的线程无法成功。也即是无法实现动态创建一个任务自动结束,下次需要再创建执行。
2. 程序低优先级的任务似乎无法运行。

对于低优先级任务执行不到,那就索性把所有的任务优先级设置成相同,这样程序似乎可以手动避免。但无法再次动态创建任务一直未能找到比较好的办法。

最终实在是没办法了,始终感觉不爽,所以下定决心一定要找到原因。终于经过一番努力找到根本原因所在,由于不小心选中finsh shell,又未实现finsh需要的输入输出设置console设备,导致在finsh任务进入while(1),但任务调度并未完全崩溃,只能调度当前最高优先级的任务,其它低优先级任务就对不起了,无法运行了。
所以去掉finsh shell勾选后一切正常了。诶,现在看什么都那么美好了。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值