linux串口(serial、uart)驱动程序设计

linux串口(serial、uart)驱动程序设计

ID:34004985

大小:100.96 KB

页数:39页

时间:2019-03-03

linux串口(serial、uart)驱动程序设计_第1页
linux串口(serial、uart)驱动程序设计_第2页
linux串口(serial、uart)驱动程序设计_第3页
linux串口(serial、uart)驱动程序设计_第4页
linux串口(serial、uart)驱动程序设计_第5页
资源描述:

《linux串口(serial、uart)驱动程序设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Linux串口(serial、uart)驱动程序设计http://blog.chinaunix.net/space.php?uid二23089249&do二blog&id二34481一、核心数据结构串口驱动有3个核心数据结构,它们都定义在<#includclinux/scrial_corc.h>1、uart_driveruart_driver包含了串口设备名、串口驱动名、主次设备号、串口控制台(可选)等信息,还封装了tty_driver(底层串口驱动无需关心tty_driver)ostructuart

2、_driver{structmodule*owner;/*拥有该uart_driver的模块,一般为THIS_MODULE*/constchar*driver_name;/*屮丨I驱动名,串口设备文件名以驱动名为皋础*/constchar*dev_name;/*串口设备名*/intmajor;/*主设备号*/intminor;/*次设备号*/intnr;/*该uart_driver支持的串口个数(最大)*/structconsole*cons;/*其杲寸应的console.若该uart_driver支

3、持serialconsole,否则为NULL*//**theseareprivate;thelowleveldrivershouldnot*touchthese;theyshouldbeinitialisedtoNULL*/structuart_state*state;structtty_driver*tty_driver;};2、uart_portuart_port用丁•描述串口端口的1/0端口或1/0内存地址、FIFO大小、端口类型、串口血钟等信息。实际上,一个uart_port实例对应一个串口设

4、备struetuartport{spinlock_tlock;/*串口端口锁*/unsignedintiobase;/*10端口基地址*/unsignedchar_iomem*membase;*1()内吐地」二,纟仝映讨(如iox'iii"]))后的10内存虚拟基地址*/unsignedintirq;/*中断号*/unsignedintuartclk;/*串口时钟*/unsignedintfifosize;*串丨丨FIFO缓冲大小*/unsignedcharx_char;/*xon/xoff字符*/u

5、nsignedcharregshift:/*寄存器位移*/unsignedchariotype;/*10访问方式*/unsignedcharunusedl;ttdefineLPIO_PORT(0)/*10端口*/ttdefineUPI0_HUB6(1)ttdefineUPIOMEM(2)/*10内存*/^defineUPI0_MEM32(3)^defineUPTO_AU(4)/*Au1x00type10*/ttdefineUPI0_TSI(5)/*Tsil08/109type10*/ttdefineU

6、PIO_DWAPB(6)/*DesignWareAPBUART*/ttdefineUPIORM9000(7)/*RM9000type10*/unsignedintread_status_mask;*关心的Rxerrorsteitus*unsignedintignore_status_mask;/*忽略的Rxerrorstatus*/structuart_info*info;,*pointertoparentinfo*,,struetuarticounticount;/*计数器*/structconso

7、le*cons;*consol纟人构体*ttifdefCONFIG_SERIAL_CORE_CONSOLEunsignedlongsysrq;*sysrqtimeout*/#endifupf_tflags;ttdefineLPF_FOURPORT((_forceupf_t)(1«1))ttdefineUPFSAK((_forceupft)(1«2))ttdefineUPFSPDMASK((forceupft)(0x1030))#defineUPF^SPDJII((_forceupf_t)(0x0010

8、))^defineUPF_SPD_VHI((_forceupf_t)(0x0020))ttdefineUPF_SPD_CUST((_forceupf_t)(0x0030))ttdefineUPF_SPD_SHI((「forceupf_t)(0x1000))ttdefineUPFSPDWARP((forceupft)(0x1010))ttdefineUPF_SKIP_TEST((_forceupf_t)(1«6))ttdefineUPF_AUTO_IRQ(

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

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

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