第六章 串口UART驱动程序开发-2

上传人:biao****biao 文档编号:243077383 上传时间:2024-09-15 格式:PPT 页数:19 大小:582.50KB
返回 下载 相关 举报
第六章 串口UART驱动程序开发-2_第1页
第1页 / 共19页
第六章 串口UART驱动程序开发-2_第2页
第2页 / 共19页
第六章 串口UART驱动程序开发-2_第3页
第3页 / 共19页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,*,第6章,串口,UART,驱动程序开发,驱动程序的框架及其例子,Makefile,文件的基本语法,串口驱动程序的开发,197,1.,驱动程序的基本框架,198,模块的加载和卸装,199,一个,2.6,内核字符设备驱动,书上的例子是基于,linux,2.4,内核的,,2.6,内核在具体实现细节上有了新的变化。书上的例子不能直接在,2.6,内核上运行。,这里给出一个具体可以运行的基于,2.6,内核的驱动程序和测试代码。,200,一个,2.6,内核字符设备驱动,File_operations,是应用程序和驱动程序的接口,,file_operation,把系统调用和驱动程序关联起来的关键数据结构。,这个结构的每一个成员都对应着一个系统调用,201,Makefile,202,Test.c,203,UART,介绍,RS232-C,异步串行接口,传统上采用专用的集成电路即通用异步收发器,( Universal Asynchronous Receiver and Transmitter ,UART),实现,,UART,作为计算机,I/ O,接口中的重要组成部分,主要用于进行串行和并行数据流之间的变换。,收发双方取得同步的方法 是采用固定的串行数据格式,即在数据格式设置中分别加起始位和停止位,来标志一个数据帧的开始和结束。其串行数据格式如图,2,所示,包括,1,位起始位, 5,8,位数据位, 1,位奇偶校验位,(,可选,) , 1,位停止位,。,204,UART,硬件实现,205,UART,硬件实现,206,驱动开发所要了解的知识,实现这么复杂,我真要去了解吗?,我应该知道哪些知识?,驱动开发人员不用去关心硬件如何实现,只要关心硬件实现的结果是什么。,硬件把结果写在寄存器里面,所以驱动开发人员只要了解如何使用寄存器就可以了,,207,UART,中的寄存器,UART2,数据寄存器,UARTDR,对应的地址:,0xff001480,RX data,是要接收和发送,8,位读写数据。,208,UART,中的寄存器,UART2,波特率和行控制器,UBRLCR2,对应的地址:,0xff0014c0,本例里中对其设置,0x00070001,。,*,(,volatile unsigned long*) 0xff0014c0 = 0x00070001,WRDLEN =2b11; FIFOEN= 1b1; Bit Rate Divisor = 12b1;,209,UART,中的寄存器,UART2,系统标志寄存器,SYSFLG,对应的地址:,0xff001140,URXFE2,:,UART2,接收,FIFO,空标志,URXFF2,:,UART2,发送,FIFO,满标志,该寄存器的读取:,int,i= *(volatile unsigned long *) 0xff001140,210,UART2,驱动程序设计,Uart,是字符备,在,linux,设备中是比较简单的。应用程序可以利用它提供给文件系统的接口对它进行操作,包括对设备的打开、读,/,写及关闭。字符设备对数据的操作以字节库单位,它可以发送或接收一个字符流。,驱动程序的几大部分:,1.,初始化和释放,2.,与应用程序的接口设计,,file_operations,3.,内部函数的实现,211,初始化和释放,在使用,uart2,之前,必须保证已经对它进行了注册。在设备初始化函数,int,uart2_kernel_init(void),中调用,regiset_chrdev,(),函数完成这项工作,Register_chrdev(UART2_MAJOR,”uart2_ep7312”, &uart2_fops),在,uart2_kernel_exit(void),函数中调用,unregister,完成此项工作。,Unregister_chrdev(UART2_MAJOR, “uart2_ep7312),212,与应用程序的接口设计,,file_operations,Uart2,的基本入口点位于驱动程序的,file_operations,结构中。,Struct,file_operations,Uart2_fops=,open: uart2_kernel_open, /,打开设备文件,ioctl,: uart2_kernel_ioctl, /,设备文件的其它操作,Struct,file_operations,Uart2_fops=,.open =uart2_kernel_open, /,打开设备文件,.,ioctl,: =uart2_kernel_ioctl, /,设备文件的其它操作,213,内部函数的实现,214,串口通信实现,Viod,uart_2(char *s),int,fd,rt,;,if(fd,= open(“/dev/uart2”,0)0),printf(“cannot,open /dev/uart2n”),exit(0);,printf(“please,input 0-9 n”);,Delay(15000);,rt,= ioctl(fd,4,s);,s1=0;,close(fd,);,215,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!