uclinux的设备驱动程序开发

uclinux的设备驱动程序开发

ID:34653465

大小:34.63 KB

页数:3页

时间:2019-03-08

uclinux的设备驱动程序开发_第1页
uclinux的设备驱动程序开发_第2页
uclinux的设备驱动程序开发_第3页
资源描述:

《uclinux的设备驱动程序开发》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、学习园地LEARNINGGARDENuClinux的设备驱动程序开发■清华MotorolaMCU/DSP应用开发研究中心陆宝辂邵贝贝李荐民简要介绍一种嵌入式Linux操作系统——uClinux,详细叙述如何在uClinux环境开发设备摘要驱动程序。关键词嵌入式操作系统LinuxuClinux设备驱动程序引言fs.h中,定义了uClinux驱动程序中必须使用的file_operations结构:嵌入式操作系统使单片机的功能越来越强大,structfile_operations{应用的领域越来越广泛。Linux以其源码开放和成int(*lseek)(structinode*,st

2、ructfile*,off_t,int);熟健壮的特性,成为嵌入式操作系统的宠儿。int(*read)(structinode*,structfile*,char*,int);uClinux是嵌入式Linux的一个分支,它最初开发用int(*write)(structinode*,structfile*,constchar*,int);在微波通信的控制设备中,后来成为一种嵌入式int(*readdir)(structinode*,structfile*,void*,filldir_t);Linux操作系统。int(*select)(structinode*,structfil

3、e*,int,select_table*);普通的x86CPU带有内存管理单元MMUint(*ioctl)(structinode*,structfile*,unsignedint,unsigned(MemoryManagementUnit),用来实现逻辑地址和long);物理地址的映射。标准的Linux以该功能为基础,实int(*mmap)(structinode*,structfile*,struct现虚拟内存的页交换等技术;嵌入式应用对成本vm_area_struct*);和实时性特别敏感,其使用的CPU中有很多都没有int(*open)(structinode*,st

4、ructfile*);MMU,标准Linux无法适用于这部分嵌入式应用。void(*release)(structinode*,structfile*);uClinux通过对标准Linux中内存管理的改写,去掉int(*fsync)(structinode*,structfile*);int(*fasync)(structinode*,structfile*,int);了对MMU的依赖,因此它在嵌入式应用中有很好int(*check_media_change)(kdev_tdev);的前景。uClinux的应用开发主要体现在驱动程序的int(*revalidate)(kdev

5、_tdev);编写和上层应用程序的开发上。在这篇文章中,笔#ifdefMAGIC_ROM_PTR者结合自己的经验,介绍如何在uClinux中开发支int(*romptr)(structinode*,structfile*,struct持新硬件的设备驱动程序。vm_area_struct*);uClinux驱动程序的基本结构和标准Linux驱动#endif/*MAGIC_ROM_PTR*/程序的结构类似,但标准的Linux支持模块化};(module),所以大部分的设备驱动都写成模块的形该结构包含一系列函数指针,这些函数指针指式,而且要求可以在不同的体系结构上安装。向对设备的各

6、种操作。常用的操作包括以下几种。uClinux是可以支持模块功能的,在编译内核的时候lseek:改变当前的读写指针。可以选择支持或不支持模块功能;但嵌入式系统read:从设备中读取数据。是针对具体应用的,一般都不需要这一功能,而且write:向设备中写数据。嵌入式系统中内存空间资源比较紧张,所以在编译readdir:读目录,一般用于文件系统的操作。内核的时候,一般选择不支持模块功能。这样,select:用于查询设备是否可读、可写或处于特uClinux的驱动程序都是直接编译到内核中的。殊的状态。1驱动程序代码ioctl:执行设备专有的命令。mmap:将设备内存映射到应用程序的进

7、程地在uClinux源代码uClinux-dist/linux/include/linux/2003.6Microcontrollers&EmbeddedSystems81学习园地LEARNINGGARDEN址空间。其中,irq——中断向量。硬件系统将IRQn映射成中断向量open:打开设备。(interruptvector)。这里的irq就是中断向量。release:关闭设备。handler——中断处理函数。在自己的驱动程序文件中定义file_operationsflags——中断管理中一些选项的掩码

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

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

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