- 1、本文档共89页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 嵌入式设备驱动
第5章 嵌入式设备驱动
5.1 Linux下设备驱动概述
5.2 设备驱动程序的结构
5.3 字符设备驱动
5.4 LCD设备驱动
5.5 块设备驱动
5.6 键盘驱动
5.7 Linux网络驱动程序
5.8 触摸屏接口设计与Linux驱动编程
5.1 Linux下设备驱动概述
Linux系统把内核和运行在其上的应用程序分为两个层次
,也就是所谓的“ 内核态”和“用户态” 。
当一个任务(进程)执行系统调用而陷入内核代码中执
行时,我们就称进程处于内核运行态(或简称为内核态)。
此时处理器处于特权级最高的(0级)内核代码中执行。当
进程处于内核态时,执行的内核代码会使用当前进程的内核
栈。每个进程都有自己的内核栈。
当进程在执行用户自己的代码时,则称其处于用户运行
态(用户态)。即此时处理器在特权级最低的(3级)用户
代码中运行。当正在执行用户程序而突然被中断程序中断时
,此时用户程序也可以象征性地称为处于进程的内核态。
5.1 Linux下设备驱动概述
因为中断处理程序将使用当前进程的内核栈。这与处于内核态的进程的状态有
些类似。内核态与用户态是操作系统的两种运行级别。
Linux进程的4GB地址空间,3G-4G部分大家是共享的,是内核态的地址空间,
这里存放在整个内核的代码和所有的内核模块,以及内核所维护的数据。用户运行
一个程序,该程序所创建的进程开始是运行在用户态的,如果要执行文件操作,网
络数据发送等操作,必须通过write ,send等系统调用,这些系统调用会调用内核
中的代码来完成操作,这时,必须切换到内核态,然后进入3GB-4GB 中的内核地
址空间去执行这些代码完成操作,完成后,切换到用户态。这样,用户态的程序就
不能随意操作内核地址空间,具有一定的安全保护作用。
在内核态下,CPU可执行任何指令,在用户态下CPU只能执行非特权指令。当
CPU处于内核态,可以随意进入用户态;而当CPU处于用户态,只能通过中断的方
式进入内核态。一般程序一开始都是运行于用户态,当程序需要使用系统资源时,
就必须通过调用软中断进入内核态。
5.1 Linux下设备驱动概述
5.1.1 设备的分类
Linux 内核把系统设备被分为三类,块设备、字符设备和网络设备。
字符设备是以字符为单位输入输出数据的设备,一般不需要使用缓冲
区而直接对它进行读写。
块设备是以一定大小的数据块为单位输入输出数据的,一般要使用缓
冲区在设备与内存之间传送数据。
字符设备和块设备可以向文件一样被访问,例如,驱动程序都会实现open (打开)、
close (关闭,或叫release )、read (读取)、write (写入)或seek (定位)等操作。
网络设备在Linux系统中一类比较特殊的设备,是通过通信网络传输
数据的设备,一般指与通信网络连接的网络适配器(网卡)等。它不
像字符设备和块设备那样通过对应的设备文件节点来访问,内核也不
再通过read或write等系统调用去访问网络设备。Linux使用套接口
(socket)以文件I/O方式提供了对网络数据的访问。
5.1 Linux下设备驱动概述
5.1.2 设备文件
Linux把所有设备都看作是特殊的文件,都纳入文件系统的范畴,例如
,系统中第一个IDE硬盘使用/dev/hda来表示。系统通过处理文件的接
口—虚拟文件系统VFS来管理和控制各种设备。从抽象的观点出发,
Linux 的设备又称为设备文件。
Linux抽象了对硬件的处理,所有的硬件设备都可以作为普通文件来看
待,对它们可以使用和操作文件相同,使用标准的系统调用接口来完
成打开、关闭、读写和I/O控制等操作,驱动程序的主要任务也就是要
实现这些系统调用函数。由于引入了设备文件这一概念,Linux为文件
和设备提供了一致的用户接口,对用户来说,设备文件与普通文件并
无区别。例如,用同一write()系统调用既可以向普通文件写入数据,
也可以通过write() 向/dev/lp0设备文件写入数据,从而
您可能关注的文档
- 汽车维护与保养一体化教程 教学配套课件 姜龙青 工作任务25 制动液更换.pdf
- 汽车维护与保养一体化教程 教学配套课件 姜龙青 工作任务26 蓄电池检查.pdf
- 汽车维护与保养一体化教程 教学配套课件 姜龙青 工作任务27 滤清器更换(保养)、制动管路检查.pdf
- 汽车维护与保养一体化教程 教学配套课件 姜龙青 工作任务28 冷却液、空调、自动变速器液位检查.pdf
- 汽车维护与保养一体化教程 教学配套课件 姜龙青 工作任务29 作业后最终检查.pdf
- 汽车维护与保养一体化教程 教学配套课件 姜龙青 工作任务30 车辆维护作业“恢复、清洁、整理”.pdf
- 汽车维护与保养一体化教程 教学配套课件 姜龙青 工作任务31 车辆道路检查训练.pdf
- 汽车维护与保养一体化教程 教学配套课件 姜龙青 工作任务32 新车磨合保养.pdf
- 汽车维护与保养一体化教程 教学配套课件 姜龙青 工作任务33 发动机正时带检查与更换.pdf
- 汽车维护与保养一体化教程 教学配套课件 姜龙青 工作任务34 检查与调整气门间隙.pdf
- 嵌入式Linux系统开发与应用 教学配套课件 康维新 第6章 Qt图形编程.pdf
- 嵌入式Linux系统开发与应用 教学配套课件 康维新 第7章 嵌入式Linux综合设计项目实例.pdf
- 热工基础 教学配套课件 张红霞 第00章绪论.pdf
- 热工基础 教学配套课件 张红霞 第01章流体的基本概念和物理性质.pdf
- 热工基础 教学配套课件 张红霞 第02章流体静力学.pdf
- 热工基础 教学配套课件 张红霞 第03章流体动力学.pdf
- 热工基础 教学配套课件 张红霞 第04章热力学基本概念.pdf
- 热工基础 教学配套课件 张红霞 第05章 热力学第一定律.pdf
- 热工基础 教学配套课件 张红霞 第06章理想气体的性质和热力过程.pdf
- 热工基础 教学配套课件 张红霞 第07章热力学第二定律.pdf
文档评论(0)