RTT串口v1使用分析以及问题排查指南 (二)

本文由RT-Thread论坛账号123 原创发布:https://club.rt-thread.org/ask/article/2898.html

RTT串口V1版本的使用分析及问题排查指南(二)

串口相关问题解析

承接RTT串口V1版本的使用分析及问题排查指南(一)文章。

结合串口使用过程的反馈信息,本章节将结合 FinSH组件的串口相关问题应用层上使用串口设备的相关问题 这两个方面进行分析。这一章节探讨FinSH组件上的串口问题。

由于串口外设所涉及的方面过于广泛,分析时不可能涵盖全部应用场景(以上两个方面应该能涵盖了串口使用过程中的七八成的应用场景),但是,结合本章的分析问题的方法,相信其他方面的问题也将会迎刃而解。

FinSH 组件上的串口问题

说起FinSH组件,肯定是离不开串口的,FinSH组件的底层数据流默认由串口外设提供(当然也可以选择网络、USB、蓝牙等方式,本节只讨论和串口相关的问题)。

RT-Thread的FinSH组件,提供了一套供用户在命令行调用的操作接口,主要用于调试或查看系统信息,类似于Linux下的Terminal。其执行序列如下图所示(抄袭的文档中心的序列图)

image.png

结合上图,可以粗略的讲, FinSH就有点类似于在RT-Thread系统中创建了一个串口线程,它用来接收(监听)用户数据,并对数据进行解析,然后执行结果,并把需要显示的结果通过串口发送给用户。再简言之,就是串口外设的收发任务。

那么就简化成了三点:1.FinSH 线程是如何启动并工作的? 2. FinSH 是如何接收到数据的? 3. FinSH 是如何显示执行结果给用户的?

FinSH 工作流程分析

image.png

在图中最关键的就是(1)、(2)和(3)这三个关键语句。

(1)语句是设置FinSH线程的shell设备,在这里这个shell设备就是串口设备,查看它的函数原形如下:

/* finsh_set_device 的关键代码 */
void finsh_set_device(
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值