实验 10-1 UART驱动分析

实验 10-1 UART驱动分析

ID:38698046

大小:167.00 KB

页数:18页

时间:2019-06-17

实验 10-1 UART驱动分析_第1页
实验 10-1 UART驱动分析_第2页
实验 10-1 UART驱动分析_第3页
实验 10-1 UART驱动分析_第4页
实验 10-1 UART驱动分析_第5页
资源描述:

《实验 10-1 UART驱动分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验10-1UART驱动程序分析实验【实验目的】Ø掌握串口的通信原理。Ø熟悉串口驱动程序的结构。【实验步骤】PXAUART串口驱动初始化第一步:打开linux-2.6.22.10driversserialpxa.c,找到串口驱动初始化serial_pxa_init(void)int__initserial_pxa_init(void){intret;ret=uart_register_driver(&serial_pxa_reg);if(ret!=0)returnret;ret=platform_driver_reg

2、ister(&serial_pxa_driver);if(ret!=0)uart_unregister_driver(&serial_pxa_reg);returnret;}在UART初始化函数中,首先调用uart_register_driver(structuart_driver*drv)函数来注册UART驱动,在这函数里它会分配一个tty_driver对象,并初始化tty_operations为serial_pxa_pops,这是serial-core.c提供的统一的UART操作函数。第二步:在linux-2.6.22

3、.10driversserialpxa.c找到serial_pxa_reg结构体的定义如下:staticstructuart_driverserial_pxa_reg={.owner=THIS_MODULE,.driver_name="PXAserial",.dev_name="ttyS",.major=TTY_MAJOR,.minor=64,.nr=ARRAY_SIZE(serial_pxa_ports),.cons=PXA_CONSOLE,};从serial_pxa_reg结构体中,UART使用的设备名为ttyS

4、n(n=0~3),主设备号major为4,次设备号minor为64,串口数nr=ARRAY_SIZE(serial_pxa_ports),根据serial_pxa_ports结构体的定义,可以算出串口数nr=4,当然PXA270只有三个串口(FFUART、BTUART、STUART),但是PXA255/26x微处理器还附加了HWUART,serial_pxa_ports定义如下;staticstructuart_pxa_portserial_pxa_ports[]={{/*FFUART*/.name="FFUART",.c

5、ken=CKEN_FFUART,.port={.type=PORT_PXA,.iotype=UPIO_MEM,.membase=(void*)&FFUART,.mapbase=__PREG(FFUART),.irq=IRQ_FFUART,.uartclk=921600*16,.fifosize=64,.ops=&serial_pxa_pops,.line=0,},},{/*BTUART*/.name="BTUART",.cken=CKEN_BTUART,.port={.type=PORT_PXA,.iotype=UPIO_

6、MEM,.membase=(void*)&BTUART,.mapbase=__PREG(BTUART),.irq=IRQ_BTUART,.uartclk=921600*16,.fifosize=64,.ops=&serial_pxa_pops,.line=1,},},{/*STUART*/.name="STUART",.cken=CKEN_STUART,.port={.type=PORT_PXA,.iotype=UPIO_MEM,.membase=(void*)&STUART,.mapbase=__PREG(STUART)

7、,.irq=IRQ_STUART,.uartclk=921600*16,.fifosize=64,.ops=&serial_pxa_pops,.line=2,},},{/*HWUART*/.name="HWUART",.cken=CKEN_HWUART,.port={.type=PORT_PXA,.iotype=UPIO_MEM,.membase=(void*)&HWUART,.mapbase=__PREG(HWUART),.irq=IRQ_HWUART,.uartclk=921600*16,.fifosize=64,.o

8、ps=&serial_pxa_pops,.line=3,},}};第一步:UART平台驱动注册初始化函数然后调用平台驱动注册函数platform_driver_register(structplatform_driver*drv)注册UART驱动,该函数实际上定义有关“伪总线”(pseudo-bus)驱

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

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

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