linux串口驱动编程

linux串口驱动编程

ID:17533482

大小:408.50 KB

页数:66页

时间:2018-09-02

linux串口驱动编程_第1页
linux串口驱动编程_第2页
linux串口驱动编程_第3页
linux串口驱动编程_第4页
linux串口驱动编程_第5页
资源描述:

《linux串口驱动编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Linux串口(serial、uart)驱动程序设计目录Linux串口(serial、uart)驱动程序设计2一、核心数据结构2二、串口驱动API6三、串口驱动例子9linuxUART串口驱动开发文档27概念阐述27一、老版本的串口驱动程序28二、目前的串口驱动程序29三、3个数据结构及其串口核心层API311、uart_driver312、uart_port323、uart_ops33四、uart_ops37五、注册串口终端40六、支持platform_driver43七、串口接收数据和发送数据流程451.相关

2、文件452.数据收发47基于Linux2.6.22和s3c2440的串口驱动简析---(1)2013-11-2115:56:3248基于Linux2.6.22和s3c2440的串口驱动简析---(2)2013-11-2115:58:4956Linux串口(serial、uart)驱动程序设计分类:LINUX原文地址:Linux串口(serial、uart)驱动程序设计作者:lingdxuyan一、核心数据结构串口驱动有3个核心数据结构,它们都定义在<#includelinux/serial_core.h>1、ua

3、rt_driveruart_driver包含了串口设备名、串口驱动名、主次设备号、串口控制台(可选)等信息,还封装了tty_driver(底层串口驱动无需关心tty_driver)。structuart_driver{structmodule*owner;/*拥有该uart_driver的模块,一般为THIS_MODULE*/constchar*driver_name;/*串口驱动名,串口设备文件名以驱动名为基础*/constchar*dev_name;/*串口设备名*/intmajor;/*主设备号*/intm

4、inor;/*次设备号*/intnr;/*该uart_driver支持的串口个数(最大)*/structconsole*cons;/*其对应的console.若该uart_driver支持serialconsole,否则为NULL*//**theseareprivate;thelowleveldrivershouldnot*touchthese;theyshouldbeinitialisedtoNULL*/structuart_state*state;structtty_driver*tty_driver;};2

5、、uart_portuart_port用于描述串口端口的I/O端口或I/O内存地址、FIFO大小、端口类型、串口时钟等信息。实际上,一个uart_port实例对应一个串口设备structuart_port{spinlock_tlock;/*串口端口锁*/unsignedintiobase;/*IO端口基地址*/unsignedchar__iomem*membase;/*IO内存基地址,经映射(如ioremap)后的IO内存虚拟基地址*/unsignedintirq;/*中断号*/unsignedintuartcl

6、k;/*串口时钟*/unsignedintfifosize;/*串口FIFO缓冲大小*/unsignedcharx_char;/*xon/xoff字符*/unsignedcharregshift;/*寄存器位移*/unsignedchariotype;/*IO访问方式*/unsignedcharunused1;#defineUPIO_PORT(0)/*IO端口*/#defineUPIO_HUB6(1)#defineUPIO_MEM(2)/*IO内存*/#defineUPIO_MEM32(3)#defineUPIO

7、_AU(4)/*Au1x00typeIO*/#defineUPIO_TSI(5)/*Tsi108/109typeIO*/#defineUPIO_DWAPB(6)/*DesignWareAPBUART*/#defineUPIO_RM9000(7)/*RM9000typeIO*/unsignedintread_status_mask;/*关心的Rxerrorstatus*/unsignedintignore_status_mask;/*忽略的Rxerrorstatus*/structuart_info*info;/*

8、pointertoparentinfo*/structuart_icounticount;/*计数器*/structconsole*cons;/*console结构体*/#ifdefCONFIG_SERIAL_CORE_CONSOLEunsignedlongsysrq;/*sysrqtimeout*/#endifupf_tflags;#defineUPF_FOURPORT

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。