Linux驱动开发-14、串行设备驱动模型

本文详细介绍了Linux中串行设备驱动模型,包括TTY概念(串口终端、控制台终端、虚拟终端)、TTY子系统架构、串口驱动的重要数据结构以及如何注册串口驱动。此外,还分析了TTY架构驱动的初始化过程和打开、写入、读取设备的调用流程。
摘要由CSDN通过智能技术生成

串行设备驱动模型

1、TTY概念解析

a) 串口终端(/dev/ttyS*

串口终端是使用计算机串口连接的终端设备;Linux以字符设备来处理这种串行端口;这些端口所对应的设备名称是/dev/ttySAC0-N

 

b) 控制台终端(/dev/console

计算机的输出设备通常被称为控制台终端,特指printk信息输出到的设备;/dev/console是一个虚拟设备;它需要映射到真正的tty上,这可以在内核启动参数中配置

 

c) 虚拟终端(/dev/tty*

用户登录时,使用的是虚拟终端 ,tty0是当前使用虚拟终端的别名

 

2、TTY子系统架构

a) tty 核心:为tty驱动提供接口,隔离上层应用与底层硬件

b) tty线路规程:加工与tty驱动交互的数据(数据的格式化等),勾勒串行层的行为,有助于复用底层的代码来支持不同的技术

i. N_TTY -----> /dev/ttySX    (终端)

ii. N_IRDA----> /dev/ircommX (红外)

iii. N_PPP -----> ppp0

 

c) tty驱动:关注uart或者其他底层串行硬件特征的驱动程序

d) 串行子系统有提供一些内核API

e) 架构图

 

 

 

3、回溯函数:dump_stack(); 使用方法:将该函数加入到要回溯的函数中去,之后内核启动会自动串口打印回溯信息

 

4、串口驱动重要数据结构:

struct uart_driver:一个结构表示一个驱动;驱动能支持多个串口

struct uart_port:一个结构表示一个实在的串口:如串口0,串口1

struct uart_ops:串口操作集合࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值