Linux 终端控制体系

1、控制台

1)控制台是一个虚拟的终端,它必须映射到真正的终端上

2)控制台是个只输出的设备,功能很简单,只能在内核中访问

2、伪终端

一种特殊的终端设备,由主-从两个成对的设备构成,当打开主设备时,对应的从设备随之打开,形成连接状态

输入到主设备的数据成为从设备的输出,输入到从设备的数据成为主设备的输出,形成双向管道

 

伪终端设备常用于远程登录服务器来建立网络和终端的关联

 

3、串口驱动

Linux 内核使用uart_driver来描述串口,包含串口设备驱动名、设备名、设备号等信息

struct uart_driver

{

struct module *owner;

const char *driver_name; //驱动名

const char *dev_name; //设备名

int major; /主设备号

int minor; //次设备号

int nr; // 设备数

struct console *cons; //

strruct uart_state *state;

struct tty_driver *tty_driver;

};

 

//注册串口驱动

int uart_regiater_driver(struct uart_driver *drv);

端口

uart_port用于描述一个UART端口(一个串口)的地址,FIFO大小、端口类型等信息

struct uart_port

{

spinlock_t lock;// 端口锁

unsigned int iobase; //IO端口基地址

unsigned char __iomem *membase; //IO内存基地址

unsigned int irq; // 中断号

unsigned char fifosize; //传输fifo大小

const struct uart_ops *ops; //操作函数指针

};

//添加端口

int uart_add_one_port(struct uart_driver *drv,struct uart_port *port);

//操作流程:

1)定义一个uart_driver的变量,并初始化

2)使用uart_register_driver来注册这个驱动

3)初始化uart_port和ops函数表、

4)调用uart_add_one_port()添加初始化好的uart_port

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值