嵌入式系统开发 第8章 嵌入式LINUX设备驱动开发VIP

嵌入式系统开发 第8章 嵌入式LINUX设备驱动开发

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式系统开发 第8章嵌入式LINUX设备驱动开发 授课教师:江兰帆 E-Mail: jiang_lanfan@126.com 引言 Linux和其他操作系统一样,支持众 多的、各式各样的外接设备。 但是,面对层出不穷的新硬件产品, 必须有人不断编写新的驱动程序,以便 让这些设备能够在Linux 下正常工作, 从这个意义上讲,讲述驱动程序的编写 就是一件非常有意义的工作。 本章提要 1 Linux device driver 基本概念 1 1 2 Linux系统内核模块 2 2 3 3 3 重要数据结构与函数 4 驱动程序的实现 4 4 5 5 5 实例分析 8.1.1 Linux device driver 的概念 系统调用是操作系统内核和应用程序之 间的接口; 设备驱动程序是操作系统内核和机器硬 件之间的接口; 设备驱动程序为应用程序屏蔽了硬件的 细节,这样在应用程序看来,硬件设备 只是一个设备文件,应用程序可以象操 作普通文件一样对硬件设备进行操作。 Linux device driver 的概念 设备驱动程序是内核的一部分,它完成以 下的功能: 1. 对设备初始化和释放。 2. 把数据从内核传送到硬件和从硬件读取 数据。 3. 读取应用程序传送给设备文件的数据和 回送应用程序请求的数据。 4. 检测和处理设备出现的错误。 Linux device driver 的概念 Linux操作系统将所有的设备全部看成文件, 并通过文件的操作界面进行操作。这意味着: • 每一个设备都有一个“文件名”。 • 应用程序通常可以通过系统调用open()打开设 备文件,建立起与目标设备的连接。 • 打开了代表着目标设备的文件,即建立起与设 备的连接后,可以通过read()、write() 、 ioctl()等常规的文件操作对目标设备进行操作。 8.1.2 设备驱动程序的分类 1. 字符设备 所有能够象字节流一样访问的设备都通过 字符设备来实现 它们被映射为文件系统中的节点,通常在 /dev/ 目录下面 一般要包含open、read、write 、close等 系统调用的实现 设备驱动程序的分类 2. 块设备 通常是指诸如磁盘、内存、Flash等可以容 纳文件系统的存储设备。 块设备也是通过文件系统来访问,与字符 设备的区别是:内核管理数据的方式不同 它允许象字符设备一样以字节流的方式来 访问,也可一次传递任意多的字节。 设备驱动程序的分类 3. 网络接口设备 通常它指的是硬件设备,但有时也可能是 一个软件设备(如回环接口loopback),它 们由内核中网络子系统驱动,负责发送和 接收数据包。 它们的数据传送往往不是面向流的,因此 很难将它们映射到一个文件系统的节点上。 8.1.3 相关基本概念 设备文件的属性由三部分信息组成: 文件的类型 惟一地确定了设备文 一个主设备号 件驱动程序及其界面 一个次设备号 说明目标设备是同类设备中的第几个 一、设备号 主设备号和次设备号能够唯一地标识一个 设备 128 (V2.0 以前), 256(V2.0以后) 主设备号相同的设备使用相同的驱动程 序,次设备号用于区分具体设备的实例 Linux下对设备号的分配请参考 Documentation/devices.txt 设备号 A. 设备号相关类型dev_t:32 位的量, 12 位用作主编号, 20 位用作次编号。 B. 相关的操作:

文档评论(0)

柳风飘香 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档