网站大量收购闲置独家精品文档,联系QQ:2885784924

嵌入式系统第8章 嵌入式设备驱动设计.ppt

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式系统 ——第八章 嵌入式设备驱动设计 嵌入式系统 ——第八章 嵌入式设备驱动设计 嵌入式设备驱动设计概述 字符设备驱动设计 块设备驱动设计 其他设备驱动 1 2 3 4 目录 5 总结 第八章 嵌入式设备驱动设计 8.1 嵌入式设备驱动设计概述 设备的分类以及特点 1 设备文件以及设备号 2 Linux设备驱动与其他模块的关系 3 如何使用模块机制 4 Sysfs虚拟文件系统 5 Linux内核设备模型 6 Linux设备驱动模型中的设备,驱动,总线和分类 7 第八章 嵌入式设备驱动设计 8.1 嵌入式设备驱动设计概述 设备的分类以及特点 硬件设备 字符设备 块设备 网络设备 第八章 嵌入式设备驱动设计 8.1 嵌入式设备驱动设计概述 设备文件以及设备号 Linux操作系统将硬件设备抽象为文件系统中的一个文件,所有针对硬件设备的操作都被视为针对文件的操作,这样的特殊文件就是设备文件。 每个设备文件都对应有两个设备号 主设备号(12bit) 次设备号(20bit) 第八章 嵌入式设备驱动设计 8.1 嵌入式设备驱动设计概述 设备驱动和其他模块的关系 内核态 用户应用程序 C库函数 Linux系统调用接口 虚拟文件系统VFS 字符设备驱动程序 通用块层 块设备驱动程序 网络设备驱动程序 网络子系统 进程管理 内存管理 用户态 Linux设备驱动程序结构图 第八章 嵌入式设备驱动设计 8.1 嵌入式设备驱动设计概述 如何使用模块机制 Ismod insmod rmmod depmod 列出已被内核调入的模块 将某个module插入到内核中 将某个module从内核中卸载 生成依赖文件,告诉将来的insmod要从何处调入modules 与内核模块有关的命令: 第八章 嵌入式设备驱动设计 8.1 嵌入式设备驱动设计概述 Sysfs虚拟文件系统 Sysfs系统用来描述设备的拓扑结构 mouse1 module usbhid bus usb drivers devices pci000:00 usb2 port 1 usbhid usb2 input input3 devices input input3 class mouse1 driver 设备模型示意图 sysfs目录包括block,bus,class,dev,devices,firmware,fs,kernel,module,power 第八章 嵌入式设备驱动设计 8.1 嵌入式设备驱动设计概述 Linux内核设备模型 Linux2.6内核设备模型的基本元素是bus、device、driver、class。在物理上,总线bus是处理器和设备device之间的通道;在设备模型中,所有的设备device都通过总线bus与驱动driver相连,总线bus负责设备device和驱动driver的匹配。 kset kobject kobject kobject kobject kset和kobject关系 第八章 嵌入式设备驱动设计 8.1 嵌入式设备驱动设计概述 Linux内核设备模型中的设备,驱动,总线和分类 总线设备逻辑关系 驱动总线逻辑关系 一个驱动程序可以驱动多个设备; 一条总线上可以存在多个驱动; 一个驱动程序对应一个模块。 分类设备逻辑关系 一个分类下可以有多个设备。 一个设备只能有一条总线、一个驱动,属于一个分类; 一条总线可以挂载多个设备; 一个分类下可以有多个设备; 一个设备可以有多个子设备,但是只能有一个父设备。 第八章 嵌入式设备驱动设计 8.2 字符设备驱动设计 简单的设备驱动例子 1 相关数据结构以及操作介绍 2 增加字符设备驱动的功能 3 第八章 嵌入式设备驱动设计 8.2 字符设备驱动设计 简单的设备驱动例子 驱动的加载和卸载是用的模块的加载insmod和卸载rmmod 驱动编译使用的Makefile是模块特有格式 使用驱动的方法和读写普通文件的方式相似 驱动外部设备就是读写控制设备文件 事例软件说明简介 建立字符设备驱动程序使用内核模块的编程模式 第八章 嵌入式设备驱动设计 8.2 字符设备驱动设计 相关的数据结构以及操作介绍 内核设备模型“类图”加入cdev 第八章 嵌入式设备驱动设计 8.2 字符设备驱动设计 增加字符设备驱动的功能 在字符设备驱动程序中,标准的操作函数可以实现大部分功能,但是外设复杂多样,常常需要有个性化的操作,所以很多驱动程序都提供了ioctl来满足这样的需求。 设计目标 1、可以通过ioctl系统调用给驱动程序发送两个命令IO_CMD_1和IO_CMD_2; 2、测可以通过read系统调用读出当前的命令

文档评论(0)

132****9295 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档