第10章 嵌入式Linux设备驱动开发ppt课件.ppt

第10章 嵌入式Linux设备驱动开发ppt课件.ppt

ID:59197535

大小:267.00 KB

页数:52页

时间:2020-09-26

第10章 嵌入式Linux设备驱动开发ppt课件.ppt_第1页
第10章 嵌入式Linux设备驱动开发ppt课件.ppt_第2页
第10章 嵌入式Linux设备驱动开发ppt课件.ppt_第3页
第10章 嵌入式Linux设备驱动开发ppt课件.ppt_第4页
第10章 嵌入式Linux设备驱动开发ppt课件.ppt_第5页
资源描述:

《第10章 嵌入式Linux设备驱动开发ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第10章嵌入式Linux设备驱动开发设备驱动程序介于操作系统和硬件之间,屏蔽了硬件设备的物理细节,并提供了访问各种硬件设备的统一接口。驱动程序设计是嵌入式Linux开发中重要的一部分,也是比较困难的一部分,在进行这部分的开发时需要熟悉Linux的内核机制、驱动程序与用户级应用程序的接口,需要考虑系统对设备的并发操作,需要非常熟悉所开发硬件的工作原理。2021/7/271第10章嵌入式Linux设备驱动开发Linux设备驱动开发概述10.1设备驱动模块化编程10.2Linux字符设备驱动10.3块设备驱动10.42021/7/2722021/7/27Pag

2、e3第10章嵌入式Linux设备驱动开发本章小结10.6思考与练习10.7网络设备驱动10.52021/7/27Page410.1Linux设备驱动开发概述操作系统的目的之一就是掩盖掉各种硬件的特殊性,使得系统中的硬件设备对于用户而言是透明的。用来管理硬件控制器的软件通常叫做设备驱动程序。Linux驱动程序功能是对设备初始化和释放、把数据从内核传送到硬件和从硬件读取数据、读取应用程序传送给设备文件的数据和回送应用程序请求的数据、检测和处理设备出现的错误。Linux核心的设备驱动程序基本上是一些共享库(SharedLibrary),在库中含有一些用来处理底

3、层硬件的例程。Linux的设备驱动程序用来处理各种硬件的多样性。操作系统的基本功能之一是对设备处理的抽象化。所有的物理设备被当做正规的文件来处理,可以被“打开”、“关闭”、“读”和“写”,就像用系统调用处理文件一样。系统中每一个设备都对应一个设备特殊文件,例如,系统中的第一个IDE磁盘的设备文件名是/dev/hda。对于块设备(如磁盘)和字符设备,它们的的设备特殊文件通常是通过mknod命令用主设备号和次设备号来描述和创建的。2021/7/27Page510.1Linux设备驱动开发概述Linux设备驱动开发调试有两种方法:一种是直接编译到内核,随同Li

4、nux启动时加载,启动内核时就会驱动此硬件设备。这种方法称为静态链接。另一种是编译为可加载模块(Loadablekernelmodules)的形式,编译生成一个.o文件,当应用程序需要时再动态加载进内核空间运行,这种方法称为动态链接。Linux提供了一批管理内核模块的命令,主要有1smod、insmod和rmmod等。1smod命令用于查看当前内核加载的模块信息;insmod命令将编译的模块直接插入内核,如果出现故障,可以使用rmmod命令从内核卸载模块,而不需要重新启动内核。2021/7/27Page610.1Linux设备驱动开发概述2021/7/2

5、7Page710.1Linux设备驱动开发概述10.1.1设备驱动和文件系统的关系设备驱动程序的任务包括自动配置和初始化子程序,负责检测所要驱动的硬件设备是否存在和是否能正常工作。如果该设备正常,则对这个设备及其相关的设备驱动程序需要的软件状态进行初始化。这部分驱动程序仅在初始化的时候被调用一次。10.1Linux设备驱动开发概述服务于I/O请求的子程序,又称为驱动程序的上半部分。调用这部分是系统调用的结果。在执行这部分程序的时候,系统仍认为和进行调用的进程属于同一个进程,只是由用户态转换为核心态,并具有进行此系统调用的用户程序的运行环境,所以可以在其中

6、调用sleep()等与进程运行环境有关的函数。在系统内部,I/O设备的存取通过一组固定的入口点来进行,这组入口点是由每个设备的设备驱动程序提供的。10.1.1设备驱动和文件系统的关系2021/7/27Page810.1Linux设备驱动开发概述10.1.2设备类型和设备号1.字符设备2.块设备3.网络设备2021/7/27Page910.1Linux设备驱动开发概述1.字符设备一个字符设备是一种字节流设备,对设备的存取只能按顺序按字节的存取而不能随机访问,字符设备没有请求缓冲区,所有的访问请求都是按顺序执行的。Linux下的大多设备都是字符设备。应用程序

7、是通过字符设备节点来访问字符设备的。设备节点一般都由mknod命令创建在/dev目录下,字符设备文件的第一个标志是前面的“c”标志。如“crw-rw----”、“crw-r-----”“crw-rw----”所代表的文件都是字符设备文件。2021/7/27Page1010.1Linux设备驱动开发概述1.字符设备Linux使用管理文件的方法来管理字符设备,所以每个字符设备在/dev/目录下都有一个对应的设备文件,即设备节点,它们包含了设备的类型、主/次设备号以及设备的访问权限控制等。每个字符设备文件都有自己的与普通文件相同的文件操作函数组结构(struc

8、tfile_operations)。字符设备驱动通常至少需要实现文件操作函数组中

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

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

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