嵌入式技术论坛
直播中

jsqueh

8年用户 1120经验值
私信 关注
[问答]

串口调试无MSH命令行输出是为什么?

开启FinSH后,串口只能打印RT初始界面logo,但是一直不打印msh>命令行,输入help等指令也没有响应,最终是把主函数中的while(1)死循环屏蔽了解决了这个问题,请问有人知道为什么吗?是因为main线程优先级高,任务线程结束就去执行main线程不进入Finsh线程吗?

回帖(2)

罗星

2023-9-3 14:50:12
是的
解决办法:1.调高tshell线程的优先级
2.主函数while(1)中加入延时,如rt_therad_mdelay(1000);
举报

李燕

2023-9-26 10:26:24
可能是因为FinSH线程的优先级低于主函数的优先级,导致FinSH线程一直得不到执行。当你屏蔽了主函数的while(1)死循环后,FinSH线程有机会获得执行,从而正常输出命令行。建议你在主函数中调用osDelay等函数,让主函数不是一直处于运行状态,从而给其他线程更多的机会获得执行。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分