ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

专题3-串口驱动程序设计-第1课tty驱动架构

2022-08-06 17:30:08  阅读:180  来源: 互联网

标签:tty console 驱动程序 dev 虚拟 终端 串口


1、tty概念解析

在linux中,/dev/目录下有很多设备。tty0 tty1 console,以及/dev/pts目录下。Linux是如何管理这些终端串口的呢。终端是一种字符设备,通常用tty简称各种类型的终端设备。

串口终端:/dev/ttyS
串口终端是使用计算机串口连接的终端设备。Linux把每个串行端口都看作一个字符设备。这些串行端口所对应的设备名称是/dev/ttySAC0 /dev/ttySAC1等等。

控制台终端:/dev/console  虚拟设备
在linux中,计算机的输出设备通常被称为控制台终端(Console),这里特指printk信息输出到的设备。/dev/console是一个虚拟设备,它需要映射到真正的tty上,比如通过内核启动参数。console=ttySAC0就是把console映射到了串口0。

虚拟终端:/dev/tty*
当用户登入时,使用的是虚拟终端。使用Ctcl + Alt +F1-F6组合键时,我们可以切换tty1- tty6.这些称为虚拟终端,而tty0是表示当前使用的虚拟终端的一个别名。

曾经碰到一个问题:设备在使用telnet登入的时候无法打印内核printk的打印。如何实现一个功能,在虚拟终端也能看到内核的打印??

2、tty架构分析

tty子系统包括:tty核心,tty线路规程和tty驱动层。tty核心是对整个tty设备的抽象,对用户提供统一的接口,tty线路规程是对传输数据的格式化,tty驱动是面向tty设备的硬件驱动。

 

 

 如何在内核中回溯调用关系:dump_stack();
串口调用关系:
sys_write
vfs_write
tty_write
n_tty_write(实际上就是线路规程ldisc_write)
uart_write
uart_start
s3c24xx_serial_start_tx()

 

 

标签:tty,console,驱动程序,dev,虚拟,终端,串口
来源: https://www.cnblogs.com/luckdog0623/p/16557524.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有