嵌入式技术基础教学课件 作者 严雨 第七章嵌入式Linux设备驱动程序开发.ppt

嵌入式技术基础教学课件 作者 严雨 第七章嵌入式Linux设备驱动程序开发.ppt

ID:50319239

大小:2.19 MB

页数:116页

时间:2020-03-08

嵌入式技术基础教学课件 作者 严雨 第七章嵌入式Linux设备驱动程序开发.ppt_第1页
嵌入式技术基础教学课件 作者 严雨 第七章嵌入式Linux设备驱动程序开发.ppt_第2页
嵌入式技术基础教学课件 作者 严雨 第七章嵌入式Linux设备驱动程序开发.ppt_第3页
嵌入式技术基础教学课件 作者 严雨 第七章嵌入式Linux设备驱动程序开发.ppt_第4页
嵌入式技术基础教学课件 作者 严雨 第七章嵌入式Linux设备驱动程序开发.ppt_第5页
资源描述:

《嵌入式技术基础教学课件 作者 严雨 第七章嵌入式Linux设备驱动程序开发.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第七章嵌入式Linux设备驱动程序开发目录GPIO字符设备驱动程序设计本章导读A/D转换器驱动程序设计IC卡驱动程序设计内核驱动程序设计——触摸屏驱动程序嵌入式Linux的设备管理音频驱动程序设计设备驱动模块化编程目录本章导读能力目标:●了解嵌入式Linux的设备驱动开发的一般流程;●掌握设备驱动模块化编程;●了解GPIO字符设备驱动程序设计过程;●掌握A/D转换器驱动程序设计方法;●掌握IC卡驱动程序设计方法;●熟悉内核驱动--触摸屏驱动程序设计;●熟悉音频驱动程序设计方法-1-学习导航:本章是对基于ARM9硬件平台的Linux嵌入式系统的设备驱

2、动开发的整个流程的相关概念、基础知识和一般应用的综述。在章节中简单介绍了Linux嵌入式系统的设备驱动开发中的常用数据结构、设备号、设备驱动模块加载函数和系统调用的实现方法open、read等的视线。基于ARM9的Linux嵌入式系统驱动程序的开发Linux设备驱动程序的加载和卸载Linux设备驱动程序的数据结构定义File_operations中的函数实现,如:open、write等测试程序的开发-2-知识框架:本章知识内容为基于ARM9的Linux嵌入式系统的设备驱动的开发的概念、流程、常见函数、开发过程中涉及的硬件设备等。Linux嵌入式系统

3、的设备管理Linux设备驱动的模块化编程Linux设备驱动的中断Linux设备驱动的方法实现Linux嵌入式系统的模块下载-3-嵌入式Linux的设备管理嵌入式系统的应用范围很广,它的处理过程可以简单的概括为:获取信息、处理信息、输出结果。此处的输入信号可以使模拟量,也可以是数字量,具体的处理操作根据应用的不同而不同,而输出结果也各不相同。与输入输出信号对应的设备,称为输入输出设备。因为嵌入式系统的这些外部设备随其具体应用而不同,所以在操作系统内部,不提供相关设备的具体操作。-4-7.1.1设备驱动和文件系统的关系在Linux中一个设备可以看做是一

4、个文件系统,Linux对设备的访问,就是通过文件系统来实现的。文件系统层是Linux从Unix中继承而来的。文件系统是Linux操作系统的重要组成部分,系统内核通过文件系统,在硬件上构造出结构化的层次。Linux支持多种的文件类型,从最早的Linux文件系统Minix,专门为Linux设计的文件系统ext2,又称扩展文件系统,到后来FAT、JFFS2、ext3和ext4等。在Linux中不同的文件类型,有不同的数据组织和集合方式。-5-在Linux中的每个介质上都可定义一个或者多个文件系统,每个文件系统由逻辑块序列组成,一个逻辑空间一般可划分为几个

5、用途各不相同的部分,引导块、超级块、索引节点和数据区等。引导块是文件系统的头,用以存放引导程序,通常为一个扇区;超级块是文件系统中,用于记录文件系统的管理信息;索引节点是一个文件或目录的根节点;数据区主要用于存放文件数据或者管理数据。设备驱动程序以文件的形式嵌入到内核的文件系统中,它的主要功能包括自动配置并初始化程序,执行功能请求的子程序等。-6-7.1.2设备类型在Linux系统中将设备分成三种基本类型,分别是:字符设备、块设备和网络设备。字符设备:是通过数据字节流来进行访问的,类似文件的访问。在Linux系统中所有能够象字节流一样访问的设备都可

6、以通过字符设备来实现,它们被映射为文件系统中的节点,通常保存在目录/dev/下,使用chrdevs来维护。字符设备是Linux中最简单的功能设备,一个字符设备的驱动程序必须具备open、read、write、和close等系统基本调用。-7-块设备:与字符设备类似,也可以通过文件系统来访问。同时块设备还是文件系统的物质基础。块设备与字符设备的区别在于,内核管理数据的方式不同。块设备可以向字符设备一样以字节流的方式来访问,也可以一次传递任意多的字节。在Linux中块设备是使用blkdevs向量表来维护的。-8-网络接口设备:是指通过网络接口来进行数据

7、交换的设备,它可以是硬件设备,也可能是软件设备。它的数据访问是以数据包的形式来进行的,它由内核中的网络子系统驱动,主要负责发送和接收数据包。网络接口设备只进行数据包的通信,而不必了解数据包中的具体内容。因为数据传送往往不是面向流的,因此很难将它们映射到一个文件系统的节点上。-9-7.1.3设备号Linux的设备号由两部分组成,分别是:主设备号和次设备号。在linux中设备号是保存在一个无符号的32位的整型中的,其中主设备号占据12个位,次设备号占据了20位。dev_t是在文件include/linux/type.h中定义的一个无符号的32位的整型,

8、其中高12位表示主设备号,低20位表示次设备号。其具体定义如下:-10-Linux设备号是在驱动模块中分配并注册的,它是与

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

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

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