电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

驱动程序(嵌入式系统)VIP免费

驱动程序(嵌入式系统)_第1页
1/33
驱动程序(嵌入式系统)_第2页
2/33
驱动程序(嵌入式系统)_第3页
3/33
驱动硬件是操作系统最基本的功能。它通过驱动程序来操作硬件。驱动程序是内核和硬件之间的接口,为应用程序屏蔽了硬件的细节。驱动程序最为操作系统最基本组成部分,具有以下功能:对设备初始化和释放。驱动程序要完成设备注册,初始化及对设备的卸载数据传送。驱动程序最重要的功能就是在内核,硬件和应用程序之间传送数据。即把数据从内核传到硬件和从硬件读取数据;读取应用程序传给设备文件的数据和回送应用程序要求的数据检测和处理设备出现的错误。Linux输入/输出系统层次结构和功能:用户应用程序(设备)文件系统设备驱动程序物理设备控制器输入/输出请求输入/输出响应物理设备物理设备控制器驱动程序通常是以内核模块的形式加载进内核或直接编译进内核,(但编译进内核是某些驱动运行的唯一方法。例如:console驱动,flash驱动和对至少一种文件系统的支持等等。)是内核的一部分。与应用程序的执行过程不同,模块通常只是预先向内核注册自己,当内核需要时响应请求。用户的应用程序以设备文件方式访问驱动程序。即linux把设备当文件,通过文件系统对设备进行访问所有的设备的驱动程序有共性,了解驱动程序的结构,对嵌入式系统的开发有价值设备驱动程序流程图:insmodrmmodinit_module()clean_module()模块内核设备功能设备注册设备卸载用户调用Linux的设备管理嵌入式Linux设备驱动程序的设计大致包括以下步骤:向系统申请也可以动态获得主、次设备号。实现设备初始化和卸载模块。(以模块方式)设计对设备文件操作。如定义file_operations结构。设计对设备文件操作调用。如read、write等操作。实现中断服务函数,用request_irq向内核注册。将驱动程序编译到内核或编译成模块,用ismod命令加载。生成设备节点文件。模块作为一种抽象数据类型,它具有一个可以通过静态内核中断的接口。最小的模块结构必须包括两个函数:init_module()和cleanup_module(),它们在系统加载模块和卸载模块时被调用。也可以编写一个只包括这两个函数的模块,这样该模块中唯一会被调用的函数就是模块被加载时所调用的函数init_module()和模块被卸载时所调用的函数cleanup_module()。并且用函数init_module()来启动模块加载期间的操作,用函数cleanup_module()来停止这些操作。由于模块可以实现相当复杂的功能,故可以在模块中加入很多新函数以实现所期望的功能。不过加入模块的每个新函数都必须在该模块加载到内核中时进行注册。若该模块是静态加载的,则该模块的所有函数都是在内核启动时进行注册;若该模块是动态加载的,则这些新函数必须在加载这个模块时动态注册。当然,如果该模块被动态卸载了,则该模块的函数都必须从系统中注销。通过这种方式,当这个模块不在系统中时,就不能调用该模块的函数。其中注册工作通常是在函数init_module()中完成的,而注销工作则是在函数cleanup_module()中完成。1模块的组织结构应用程序与内核模块的比较源程序:有main();没有main(内核模块结构)编译:gcc;gcc加参数(幻33)运行:运行命令;模块加载(用命令insmodrmmod或内核裁减,以模块方式或编译进内核,由内核需要时调用)内核模块结构#include//说明是个内核功能#include//声明是一个模块……//其它header信息intinit_module(){……//加载时,初始化模块的编码如注册register_chrdev}…………//期望该模块所能实现的一些功能函数,如open()、release()、write()、read()、ioctl()等函数……voidcleanup_module(){……//卸载时,注销模块的编码}module_init(dri_arch_init_module);加载本驱动是执行module_exit(dri_arch_cleanup_module);卸载驱动时执行一般编译模块文件的命令格式如下:#gcc-O2–g-Wall-DMODULE-D__KERNEL__-c–f-I/usr/src/linux-2.4/includefilename.c//filename.c为自己编写的模块程序源代码文件(2)模块的编译(3)模块的加载(4)模块的卸载Insmod命令调用module_initrmmod命令调用module_exitLinux内核模块结构介绍#include//所有模块都需要的头文...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

驱动程序(嵌入式系统)

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部