下载此文档

第11章嵌入式Linux设备驱动开发课件.ppt


文档分类:IT计算机 | 页数:约63页 举报非法文档有奖
1/63
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/63 下载此文档
文档列表 文档介绍
该【第11章嵌入式Linux设备驱动开发课件 】是由【rdwiirh】上传分享,文档一共【63】页,该文档可以免费在线阅读,需要了解更多关于【第11章嵌入式Linux设备驱动开发课件 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。第11章嵌入式Linux设备驱动开发
Date
第11章嵌入式Linux设备驱动开发
本章的主要内容






——test驱动
第11章嵌入式Linux设备驱动开发

第11章嵌入式Linux设备驱动开发
设备驱动简介及驱动模块
操作系统是通过各种驱动程序来驾驭硬件设备的,它为用户屏蔽了各种各样的设备,驱动硬件是操作系统最基本的功能,并且提供统一的操作方式。设备驱动程序是内核的一部分,硬件驱动程序是操作系统最基本的组成部分,在Linux内核源程序中也占有60%以上。因此,熟悉驱动的编写是很重要的。
Linux内核中采用可加载的模块化设计(LKMs,LoadableKernelModules),一般情况下编译的Linux内核是支持可插入式模块的,也就是将最基本的核心代码编译在内核中,其他的代码可以编译到内核中,或者编译为内核的模块文件(在需要时动态加载)。
第11章嵌入式Linux设备驱动开发
内核模块的主要相关命令
常见的驱动程序是作为内核模块动态加载的,比如声卡驱动和网卡驱动等,而Linux最基础的驱动,如CPU、PCI总线、TCP/IP协议、APM(高级电源管理)、VFS等驱动程序则直接编译在内核文件中。有时也把内核模块叫做驱动程序,只不过驱动的内容不一定是硬件罢了,比如ext3文件系统的驱动。因此,加载驱动就是加载内核模块。
lsmod列出当前系统中加载的模块,其中左边第一列是模块名,第二列是该模块大小,第三列则是使用该模块的对象数目。
rmmod是用于将当前模块卸载。
insmod和modprobe是用于加载当前模块,但insmod不会自动解决依存关系,即如果要加载的模块引用了当前内核符号表中不存在的符号,则无法加载,也不会去查在其他尚未加载的模块中是否定义了该符号;modprobe可以根据模块间依存关系以及/etc/。
第11章嵌入式Linux设备驱动开发
设备分类(1)
Linux系统的设备分为三类:字符设备、块设备和网络设备。
字符设备通常指像普通文件或字节流一样,以字节为单位顺序读写的设备,如并口设备、虚拟控制台等。字符设备可以通过设备文件节点访问,它与普通文件之间的区别在于普通文件可以被随机访问(可以前后移动访问指针),而大多数字符设备只能提供顺序访问,因为对它们的访问不会被系统所缓存。但也有例外,例如帧缓存(framebuffer)是一个可以被随机访问的字符设备。
块设备通常指一些需要以块为单位随机读写的设备,如IDE硬盘、SCSI硬盘、光驱等。块设备也是通过文件节点来访问,它不仅可以提供随机访问,而且可以容纳文件系统(例如硬盘、闪存等)。Linux可以使用户态程序像访问字符设备一样每次进行任意字节的操作,只是在内核态内部中的管理方式和内核提供的驱动接口上不同。
第11章嵌入式Linux设备驱动开发
设备分类(2)
网络设备通常是指通过网络能够与其他主机进行数据通信的设备,如网卡等。内核和网络设备驱动程序之间的通信调用一套数据包处理函数,它们完全不同于内核和字符以及块设备驱动程序之间的通信(read(),write()等函数)。Linux网络设备不是面向流的设备,因此不会将网络设备的名字(例如eth0)映射到文件系统中去。
$ls–l/dev
crw-rw----1rootuucp4,6408-3022:58ttyS0/*串口设备,c表示字符设备*/
brw-r-----1rootfloppy2,008-3022:58fd0 /*软盘设备,b表示块设备*/
第11章嵌入式Linux设备驱动开发
设备号
设备号是一个数字,它是设备的标志。就如前面所述,一个设备文件(也就是设备节点)可以通过mknod命令来创建,其中指定了主设备号和次设备号。主设备号表明设备的类型(例如串口设备、SCSI硬盘),与一个确定的驱动程序对应;次设备号通常是用于标明不同的属性,例如不同的使用方法,不同的位置,不同的操作等,它标志着某个具体的物理设备。高字节为主设备号,底字节为次设备号。
例如,在系统中的块设备IDE硬盘的主设备号是3,而多个IDE硬盘及其各个分区分别赋予次设备号1、2、3……
$ls–l/dev
crw-rw----1rootuucp4,6408-3022:58ttyS0/*主设备号4,此设备号64*/
第11章嵌入式Linux设备驱动开发
驱动层次结构
第11章嵌入式Linux设备驱动开发
设备驱动程序与外界的接口
第11章嵌入式Linux设备驱动开发

第11章嵌入式Linux设备驱动开发课件 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数63
  • 收藏数0 收藏
  • 顶次数0
  • 上传人rdwiirh
  • 文件大小955 KB
  • 时间2023-03-27