第6章 嵌入式Linux驱动程序开发ppt课件.ppt

第6章 嵌入式Linux驱动程序开发ppt课件.ppt

ID:58699188

大小:621.00 KB

页数:42页

时间:2020-10-04

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

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

1、第6章嵌入式Linux驱动程序开发嵌入式Linux的设备管理设备驱动程序开发过程应用实例1971.嵌入式Linux的设备管理设备管理概述设备类型设备号Linux驱动程序概念驱动程序结构用户访问接口Linux对中断的处理设备驱动的初始化设备驱动初始化函数主要功能1981.1设备管理概述linux将所有的设备看作具体的文件,通过文件系统层对设备进行访问。这样可以很好的做到“设备无关性”。可以把Linux对设备的管理划分成四个层次:用户进程文件系统层设备驱动层硬件层它们之间的关系如右图所示:第六章123嵌入式Linux的设备管理设备驱动程序开发过程应用实例199

2、1.1设备管理概述用户进程用户进程一般位于内核之外,当它需要操作设备时,可以就像访问普通文件一样,通过调用read(),write()等文件操作系统调用来完成对设备文件的访问和控制。文件系统层:向用户提供一组统一的用户接口。它位于用户进程层下面,属于内核空间,基本功能是执行适合于所有设备的输入输出功能,使用户透明的访问文件。在用户进程发出系统调用要求输入输出操作时,由文件系统层就处理请求的权限。设备驱动层:用于屏蔽具体设备的细节,设备驱动程序位于内核中,它根据文件系统层的输入输出请求来操作硬件上的设备控制器,完成设备的初始化、打开释放设备以及数据在内核和设

3、备间的传递等操作。第六章123嵌入式Linux的设备管理设备驱动程序开发过程应用实例2001.2设备类型Linux中的设备可以分为三类:字符设备:数据的处理是以字节为单位按顺序进行的,没有数据缓冲区,也不支持随机读写。嵌入式系统中简单的按键、触摸屏、手写板都属于字符设备。块设备:是指那些在输入/输出时数据处理以块为单位的设备,它一般都采用了缓存技术,支持数据的随机读写。典型的块设备有硬盘、cd-rom等。对用户来说块设备和字符设备的访问接口都是一样的,区别仅在内核和驱动程序的软件接口上。网络设备:实现方法不同于以上两种设备,它面向的上一层不是文件系统层而是

4、网络协议层,内核和网络设备驱动程序间的通信,与字符设备和块设备也完全不同。第六章123嵌入式Linux的设备管理设备驱动程序开发过程应用实例2011.3设备号传统的设备管理上,除了设备类型外,linux内核还需要一对被称作为主设备号、次设备号的参数,才能唯一的标识设备。主设备号:标识设备对应的驱动程序。系统中不同的设备可以有相同的主设备号,主设备号相同的设备使用相同的驱动程序,内核利用主设备号将设备与相应的驱动程序对应起来。次设备号:用来区分具体驱动程序的实例。从上面可以知道,一个主设备号可能有多个设备与之对应,这多个设备正是在驱动程序内通过次设备号来进一

5、步区分的。次设备号只能由设备驱动程序使用,内核的其他部分仅将它作为参数传递给驱动程序。第六章123嵌入式Linux的设备管理设备驱动程序开发过程应用实例2021.4Linux驱动程序概念设备驱动程序是操作系统内核与机器硬件之间的接口,设备驱动程序为应用程序屏蔽了硬件的细节,从应用程序来看,硬件设备只是一个设备文件,应用程序可以向操作普通文件一样对硬件设备进行操作,设备驱动程序属于内核,主要功能有:对设备初始化和释放。把数据从内核传送到硬件和从硬件读取数据。传送应用程序和设备文件之间的数据检测和处理设备出现的错误。设备驱动程序的开发方式主要有两种:基于内核的

6、方式和基于模块的方式。第六章123嵌入式Linux的设备管理设备驱动程序开发过程应用实例2031.5驱动程序结构Linux的设备驱动程序分为三个主要部分:自动配置和初始化子程序:负责监测所要驱动的硬件设备是否存在和能否正常工作。仅在初始化时被调用一次。服务于I/O请求的子程序:也称为驱动程序的上半部分。这部分程序由系统调用执行,和调用进程属于同一个进程,具有调用进程的运行环境,只是由用户态变成了核心态。中断服务子程序:也称为驱动程序的下半部分。由Linux系统接收,再由系统调用中断服务子程序。中断可以在任何一个进程运行时产生,因而中断应该独立于任何进程。同

7、一个中断可以服务于多个设备,因而应该为中断程序提供请求服务设备的标示参数。第六章123嵌入式Linux的设备管理设备驱动程序开发过程应用实例2041.5用户访问接口对用户程序而言,设备驱动程序隐藏了设备的具体细节,对各种不同设备提供了一致的接口,I/O设备的存取可以通过一组固定的入口点来进行,这组入口点是由每个设备的设备驱动程序提供的。主要包括:open入口点:打开设备准备I/O操作。release入口点:关闭由open()函数打开的文件read入口点:从设备上读数据。对于有缓冲区的I/O操作,一般是从缓冲区里读数据。write入口点:往设备上写数据,对于

8、有缓冲区的I/O操作,一般是把数据写入缓冲区里。ioctl入口点:

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

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

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