Rtthread V5.2.0 MSH 报错finsh: can not find device: uart1

Rtthread V5.2.0 MSH/finsh 报错finsh: can not find device: uart1

官网gitee 下载最新Rtthread 后通过SCONS 生成Keil5 STM32f407VG 代码烧录到开发板后,启动可以正常出现RTthread Finsh终端打印,但之后卡住,无法接受串口发送的指令,

终端上报告finsh: can not find device: uart1错误

 \ | /
- RT -     Thread Operating System
 / | \     5.2.0 build May 19 2024 08:28:13
 2006 - 2024 Copyright by RT-Thread team
finsh: can not find device: uart1
msh >

调试发现rtthread 源码似乎都对MSH兼容性有问题,修改代码后解决msh卡住问题,

1.通过keil调试发现程序在执行finsh_set_device()中的rt_dev_find 后会查询uart1 失败,导致finsh未能正常创建进程,而退出,

2.检查代码,uart1 有被正常申请注册,进入rt_device_find() 函数最终调用rt_object_find();发现判断的

data!=name 条件不成立,进入rt_object_for_each(); 这个rt_object_for_each() 函数内的的实现简直反人类设置,返回值和设备不明确,RT_EOK, 乱使用, 心累

修改两处,暂时解决finsh报错问题

1.rt_object_for_each() 修改返回值的判定

2.修改rt_object_find返回目标的判定

问题在rtthread 5.2.0 上解决,


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值