当前位置: 首页> 手游资讯> 正文

【驱动】串口驱动分析(一)-软件架构

admin 2025-07-07 77

区分不同的终端类型

伪终端(/dev/pty/)

伪终端`/dev/pts`是远程登陆(telnet,ssh等)后创建的控制台设备文件所在的目录。

由于可能有好几千个用户登陆,所以`/dev/pts`其实是动态生成的,不象其他设备文件是构建系统时就已经产生的硬盘节点(如果未使用devfs)。

第一个用户登陆,console的设备文件为`/dev/pts/0`,第二个为`/dev/pts/1`,以此类推。这里的0、1、2、3不是具体的标准输入或输出,而是整个控制台。你可尝试`echo"aaaaaa"/dev/pts0、1、2……`。

控制台终端(/dev/ttyn,/dev/console)

控制台终端`/dev/ttyn`n(0到6),tty1,tty2就是不同的虚拟终端(virtualconsole).

`/dev/console`就是tty0,tty0则是当前所使用虚拟终端即激活的虚拟终端的一个别名,系统所产生的信息会发送到该终端上,实际上机器只有一个屏幕,也就是我们看到的这个屏幕,可以理解为console指向激活的那个tty,准确地说是激活的那个tty才将输出显示到console。

历史上,console指主机本身的屏幕键盘,而tty指用电缆链接的其它位置的控制台(仅包含屏幕和键盘)。tty0是系统自动打开的,但不用于用户登录。

ttycore

ttycore主要实现如下三类功能:

-将串口设备有关的物理对象(及其操作方法)封装成一个一个的数据结构,以达到用软件语言描述硬件的目的。

-向底层driver提供串口驱动的编程接口。

-基于TTYframework所提供的TTYdriver的编写规则,将底层driver看到的serialdriver,转换为TTYdriver,并将所有的serial操作,转换为对应的tty操作。

串口硬件驱动层

这个层次主要负责和具体的串口硬件进行通信,实现了对硬件的控制和访问。在内核中,串口驱动模块通常被实现为字符设备,通过字符设备接口与串口核心模块进行交互。它通过注册到串口核心层,实现了对上层的透明。

小结

`ttycore`和串口硬件驱动层是串口驱动框架的核心部分。在使用串口设备时,用户通常只需要与`ttycore`模块进行交互,而不需要直接操作串口驱动模块和平台驱动模块。下一节我们将深入到串口驱动内部分析`ttycore`的框架体系结构。

本文参考

同类文章
  • 最新文章
  • 热门文章
  • 随机阅读
友情链接