嵌入式操作系统chap9.pptVIP

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式操作系统chap9.ppt

系统调用是操作系统内核和应用程序之间的接口,设备驱动程序是操作系统内核和机器硬件之间的接口。设备驱动程序为应用程序屏蔽了硬件的细节,在应用程序看来,硬件设备只是一个设备文件,应用程序可以象操作普通文件一样对硬件设备进行操作。设备驱动程序是内核的一部分,它完成以下的功能:? 对设备初始化和释放。 把数据从内核传送到硬件和从硬件读取数据。 读取应用程序传送给设备文件的数据和回送应用程序请求的数据。 检测和处理设备出现的错误。 三、Linux设备驱动程序 设备驱动程序与外部设备之间的关系: 三、Linux设备驱动程序 内核设备管理系统(I/O子系统) 键盘驱动 鼠标驱动 … 软盘驱动 网卡驱动 键盘 鼠标 … 软盘 网卡 键盘控制器 鼠标控制器 … 软盘控制器 网卡控制器 驱动程序大致分为4个主要组成部分: 自动配置和初始化子程序,负责检测所要驱动的硬件设备是否存在和是否能正常工作。如果该设备正常,则对这个设备及其相关的、设备驱动程序需要的软件状态进行初始化。这部分驱动程序只有在初始化时被调用一次。 完成用户进程请求的程序,即永恒进程对设备的操控部分。 设备中断服务程序,通常分为上半部和下半部。 三、Linux设备驱动程序 三、Linux设备驱动程序 1、设备管理 设备管理包括两个方面的内容: 一是如何在系统中登记注册设备及其驱动程序,以使系统知道设备的存在以及状态; 二是当进程需要使用外部设备时,采用哪种方式将设备及其驱动程序提交给进程。其核心内容就是设备驱动程序的管理。 从进程的角度看,外部设备的驱动程序就是一组包括中断服务程序的操作函数集合。其中,对于外设的中断管理,我们无须操心,因为计算机系统中已经存在一个完善的中断管理系统。所以,重点要关心如何向应用进程提供那些供进程调用的操作函数及管理方法。 字符设备(character device)处理字节流。串行端口或输入设备驱动程序(键盘、鼠标、触摸屏、游戏操纵杆等)通常实现字符 设备类型。和普通文件之间的主要区别是: 普通文件可以来回读/写,而大多数字符设备仅仅是数据通道,只能顺序读/写。字符设备是Linux最简单的设备,可以像文件一样访问 chrdevs向量表中的每一个条目(一个device_struct数据结构,包括两个元素:一个登记的设备驱动程序的名称的指针和一个指向一组文件操作的指针)。这块文件操作本身位于这个设备的字符设备驱动程序中,每一个都处理特定的文件操作,比如打开、读、写和关闭。 三、Linux设备驱动程序 2、Linux字符设备 三、Linux设备驱动程序 2、Linux字符设备 块设备(block device):单次操作处理512字节或更多的二次幂块数据。存储设备驱动程序通常实现此类块设备。是文件系统的物质基础,它也支持像文件一样被访问。 Linux用blkdevs向量表维护已经登记的块设备文件,每一个条目也是device_struct数据结构,使用设备的主设备号作为索引。 字符设备和块设备的主要区别是:在对字符设备发出读/写请求时,实际的硬件I/O一般就紧接着发生了,块设备则不然,它利用一块系统内存作为缓冲区,当用户进程对设备请求能满足用户的要求时,就返回请求的数据,如果不能就调用请求函数来进行实际的I/O操作。块设备是主要针对磁盘等慢速设备设计的,以免耗费过多的CPU时间来等待。 三、Linux设备驱动程序 3、Linux块设备 网络设备是以数据包为单位进行数据交换的设备,如以太网卡。 为了屏蔽网络环境中物理网络设备的多样性,Linux对所有的物理设备进行抽象并定义了一个统一的概念,称之为接口 (Interface)。所有对网络硬件的访问都是通过接口进行的,接口对上层协议提供一致化的操作集合来处理基本数据的发送和接收对下层屏蔽硬件差异。 在Linux中所有网络接口都用一个net_device的数据结构表示。通常,网络设备是一个物理设备如以太网卡,但软件也可以作为网络设备,如回环设备(loopback)。所有被网络设备发送和接收的包都用数据结构skb_buff表示,这是一个具有很好的灵活性的数据结构,可以很容易增加或删除网络协议数据包头。 三、Linux设备驱动程序 3、Linux网络接口 把设备看成文件具有以下几个含义: (1)每个设备具有一个文件名称,应用程序可以通过设备的文件名来访问具体的设备,同时要受到文件系统访问权限控制机制的保护。 (2)设备在内核中应该对应有一个索引节点。 (3)设备应该可以以文件的方式进行操作。 三、Linux设备驱动程序 4、Linux设备文件 设备文件、驱动程序与外设的关系: 三、Linux设备驱动程序 4、Linux设备文件 文

您可能关注的文档

文档评论(0)

xinshengwencai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档