- 35
- 0
- 约4.98千字
- 约 5页
- 2017-11-20 发布于北京
- 举报
串口驱动8250基本结构
串口核心层 提供(定义了)3个数据结构
在下面8250.c中为初始化数据结构,
uart_driver
static struct uart_driver serial8250_reg = {
.owner = THIS_MODULE,
.driver_name = serial, /* 串口驱动名,串口设备文件名以驱动名为基础 */
.dev_name = ttyS, /* 串口设备名 */
.major = TTY_MAJOR,
.minor = 64,
.nr = UART_NR, /* 该uart_driver支持的串口个数(最大) */
.cons = SERIAL8250_CONSOLE, /* 其对应的console.若该uart_driver支持serial console,否则为NULL */
};
int uart_register_driver(struct uart_driver *drv); 注册函数
void uart_unregister_driver(struct uart_driver *drv); 卸载函数
uart_port
struct uart_8250_port {
struct uart_port port;
struct timer_list timer; /* no irq timer */
struct list_head list; /* ports on this IRQ */
unsigned short capabilities; /* port capabilities */
unsigned short bugs; /* port bugs */
unsigned int tx_loadsz; /* transmit fifo load size */
unsigned char acr;
unsigned char ier;
unsigned char lcr;
unsigned char mcr;
unsigned char mcr_mask; /* mask of user bits */
unsigned char mcr_force; /* mask of forced bits */
unsigned char lsr_break_flag;
/*
* We provide a per-port pm hook.
*/
void (*pm)(struct uart_port *port,
unsigned int state, unsigned int old);
};
int uart_add_one_port(struct uart_driver *drv, struct uart_port *port);
发生在uart_register_driver()之后
uart_remove_one_port()
uart_ops
static struct uart_ops serial8250_pops = {
.tx_empty = serial8250_tx_empty, /* 串口的Tx FIFO缓存是否为空 */
.set_mctrl = serial8250_set_mctrl, /* 设置串口modem控制 */
.get_mctrl = serial8250_get_mctrl, /* 获取串口modem控制 */
.stop_tx = serial8250_stop_tx, /* 禁止串口发送数据 */
.start_tx = serial8250_start_tx, /* 使能串口发送数据 */
.stop_rx = serial8250_stop_rx, /* 禁止串口接收数据 */
.enable_ms = serial8250_enable_ms, /* 使能modem的状态信号 */
.break_ctl = serial8250_break_ctl, /* 设置break信号 */
.startup = serial8250_startup, /* 启动串口,应用程序打开串口设备文件时,该函数会被调用 */
.shutdown = serial8250_shutdown, /* 关闭串口,应用程序关闭串口设备文件时,该函数会被调用 */
.set_termios = serial8250_set_termios, /* 设置串口参数 */
.pm = serial82
您可能关注的文档
- 不必让种种安全记忆永远和自己同在就让它留在它所形成的地方吧.docx
- 不急不慢从容不迫才是我想遇到你的样子.doc
- 不敢问尼采的就问尾田荣一郎吧.doc
- 不文明行为让图书馆很伤心.doc
- 不放弃任何一个孩子.doc
- 不正当饮食会引发肾虚.doc
- 不止一点爱的几个蜜月圣地.docx
- 不爱喝水、爱喝啤酒三大不良习惯损伤肾脏.doc
- 不用公式编辑器也能编公式.doc
- 不用鼠标也能玩转电脑.doc
- GB/T 42818.2-2026认知无障碍 第2部分:报告.pdf
- 中国国家标准 GB/T 47116-2026地下采矿机械 工作面移动式采掘机械 采煤机和犁式系统的安全要求.pdf
- 《GB/T 47116-2026地下采矿机械 工作面移动式采掘机械 采煤机和犁式系统的安全要求》.pdf
- 中国国家标准 GB/T 42818.2-2026认知无障碍 第2部分:报告.pdf
- 《GB/T 42818.2-2026认知无障碍 第2部分:报告》.pdf
- 《GB/T 27664.1-2026无损检测仪器 超声检测设备的性能与检验 第1部分:仪器》.pdf
- 中国国家标准 GB/T 27664.1-2026无损检测仪器 超声检测设备的性能与检验 第1部分:仪器.pdf
- GB/T 27664.1-2026无损检测仪器 超声检测设备的性能与检验 第1部分:仪器.pdf
- GB/T 45305.5-2026声学 建筑构件隔声的实验室测量 第5部分:测试设施和设备的要求.pdf
- 中国国家标准 GB/T 45305.5-2026声学 建筑构件隔声的实验室测量 第5部分:测试设施和设备的要求.pdf
最近下载
- 高等机构学01螺旋理论基础讲义.ppt
- 基于plc的清洗消毒机控制系统设计 .pdf VIP
- 发明专利说明书范例.pdf VIP
- 人教版英语中考九年级话题复习中国传统节日Chinesetraditionalfestivals教学设计.docx VIP
- 四年级道德与法治下册第一单元单元整体教学设计.pdf VIP
- 进修汇报医生课件课件.pptx VIP
- 03G102钢结构设计制图深度和表示方法(高清版) (OCR).pdf VIP
- 基于三菱PLC的自动洗碗机控制系统设计.doc VIP
- 下肢深静脉血栓形成介入治疗护理实践指南(2025)解读PPT课件.pptx VIP
- 南京新港东区建设发展有限公司南京龙潭新城花园路等13条道路及花园河等4条河道工程项目环评报告表(报批稿).pdf VIP
原创力文档

文档评论(0)