资料介绍
分享到:标签:嵌入式Linux 设备驱动 操作系统
11.1 设备驱动概述
11.1.1 设备驱动简介及驱动模块
操作系统是通过各种驱动程序来驾驭硬件设备的,它为用户屏蔽了各种各样的设备,驱动硬件是操作系统最基本的功能,并且提供统一的操作方式。设备驱动程序是内核的一部分,硬件驱动程序是操作系统最基本的组成部分,在Linux内核源程序中也占有60%以上。因此,熟悉驱动的编写是很重要的。
在第2章中已经提到过,Linux内核中采用可加载的模块化设计(LKMs,Loadable Kernel Modules),一般情况下编译的Linux内核是支持可插入式模块的,也就是将最基本的核心代码编译在内核中,其他的代码可以编译到内核中,或者编译为内核的模块文件(在需要时动态加载)。
常见的驱动程序是作为内核模块动态加载的,比如声卡驱动和网卡驱动等,而Linux最基础的驱动,如CPU、PCI总线、TCP/IP协议、APM(高级电源管理)、VFS等驱动程序则直接编译在内核文件中。有时也把内核模块叫做驱动程序,只不过驱动的内容不一定是硬件罢了,比如ext3文件系统的驱动。因此,加载驱动就是加载内核模块。
这里,首先列举一些模块相关的命令。
n lsmod列出当前系统中加载的模块,其中左边第一列是模块名,第二列是该模块大小,第三列则是使用该模块的对象数目。如下所示:
$ lsmod
Module Size Used by
Autofs 12068 0 (autoclean) (unused)
eepro100 18128 1
iptable_nat 19252 0 (autoclean) (unused)
ip_conntrack 18540 1 (autoclean) [iptable_nat]
iptable_mangle 2272 0 (autoclean) (unused)
iptable_filter 2272 0 (autoclean) (unused)
ip_tables 11936 5 [iptable_nat iptable_mangle iptable_filter]
usb-ohci 19328 0 (unused)
usbcore 54528 1 [usb-ohci]
ext3 67728 2
jbd 44480 2 [ext3]
aic7xxx 114704 3
sd_mod 11584 3
scsi_mod 98512 2 [aic7xxx sd_mod]
n rmmod是用于将当前模块卸载。
n insmod和modprobe是用于加载当前模块,但insmod不会自动解决依存关系,即如果要加载的模块引用了当前内核符号表中不存在的符号,则无法加载,也不会去查在其他尚未加载的模块中是否定义了该符号;modprobe可以根据模块间依存关系以及/etc/modules.conf文件中的内容自动加载其他有依赖关系的模块。
11.1 设备驱动概述
11.1.1 设备驱动简介及驱动模块
操作系统是通过各种驱动程序来驾驭硬件设备的,它为用户屏蔽了各种各样的设备,驱动硬件是操作系统最基本的功能,并且提供统一的操作方式。设备驱动程序是内核的一部分,硬件驱动程序是操作系统最基本的组成部分,在Linux内核源程序中也占有60%以上。因此,熟悉驱动的编写是很重要的。
在第2章中已经提到过,Linux内核中采用可加载的模块化设计(LKMs,Loadable Kernel Modules),一般情况下编译的Linux内核是支持可插入式模块的,也就是将最基本的核心代码编译在内核中,其他的代码可以编译到内核中,或者编译为内核的模块文件(在需要时动态加载)。
常见的驱动程序是作为内核模块动态加载的,比如声卡驱动和网卡驱动等,而Linux最基础的驱动,如CPU、PCI总线、TCP/IP协议、APM(高级电源管理)、VFS等驱动程序则直接编译在内核文件中。有时也把内核模块叫做驱动程序,只不过驱动的内容不一定是硬件罢了,比如ext3文件系统的驱动。因此,加载驱动就是加载内核模块。
这里,首先列举一些模块相关的命令。
n lsmod列出当前系统中加载的模块,其中左边第一列是模块名,第二列是该模块大小,第三列则是使用该模块的对象数目。如下所示:
$ lsmod
Module Size Used by
Autofs 12068 0 (autoclean) (unused)
eepro100 18128 1
iptable_nat 19252 0 (autoclean) (unused)
ip_conntrack 18540 1 (autoclean) [iptable_nat]
iptable_mangle 2272 0 (autoclean) (unused)
iptable_filter 2272 0 (autoclean) (unused)
ip_tables 11936 5 [iptable_nat iptable_mangle iptable_filter]
usb-ohci 19328 0 (unused)
usbcore 54528 1 [usb-ohci]
ext3 67728 2
jbd 44480 2 [ext3]
aic7xxx 114704 3
sd_mod 11584 3
scsi_mod 98512 2 [aic7xxx sd_mod]
n rmmod是用于将当前模块卸载。
n insmod和modprobe是用于加载当前模块,但insmod不会自动解决依存关系,即如果要加载的模块引用了当前内核符号表中不存在的符号,则无法加载,也不会去查在其他尚未加载的模块中是否定义了该符号;modprobe可以根据模块间依存关系以及/etc/modules.conf文件中的内容自动加载其他有依赖关系的模块。
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- Linux设备驱动开发详解 45次下载
- 《Linux设备驱动开发详解》第6章、字符设备驱动 23次下载
- 《Linux设备驱动开发详解》第7章、Linux设备驱动中的并发控制 10次下载
- 《Linux设备驱动开发详解》第8章、Linux设备驱动中的阻塞与非阻塞IO 9次下载
- 《Linux设备驱动开发详解》第9章、Linux设备驱动中的异步通知与异步IO 0次下载
- 《Linux设备驱动开发详解》第13章、Linux块设备驱动 18次下载
- 《Linux设备驱动开发详解》第14章、Linux终端设备驱动 8次下载
- 《Linux设备驱动开发详解》第15章、Linux的I2C核心、总线与设备驱动 8次下载
- 《Linux设备驱动开发详解》第16章、Linux网络设备驱动 5次下载
- 《Linux设备驱动开发详解》第17章、Linux音频设备驱动 17次下载
- 《Linux设备驱动开发详解》第18章、LCD设备驱动 13次下载
- 《Linux设备驱动开发详解》第20章、USB主机与设备驱动 8次下载
- 《Linux设备驱动开发详解》第23章、Linux设备驱动的移植 9次下载
- Linux设备驱动开发入门 600次下载
- 嵌入式Linux设备驱动开发 82次下载
- Linux内核驱动与单个PCI设备的绑定和解绑定 705次阅读
- 一文总结linux的platform驱动 371次阅读
- RT-Thread设备驱动开发之二I/O设备框架 250次阅读
- 如何写一个Linux设备驱动程序 4016次阅读
- Linux设备驱动开发的基本知识 4055次阅读
- 米尔科技Linux设备驱动研究浅谈 1749次阅读
- 米尔科技LINUX设备驱动程序教程 1780次阅读
- 基于PXA255开发板外围字符设备的嵌入式Linux字符设备驱动设计与应用 1045次阅读
- 基于嵌入式Linux下的I2C设备驱动的总体思路与框架设计 3551次阅读
- 基于嵌入式Linux内核的系统设备驱动程序开发设计 1031次阅读
- 可动态安装的Linux设备驱动程序 882次阅读
- 想要驾驭Linux驱动开发,必须深刻理解Linux总线设备驱动框架 1w次阅读
- 嵌入式Linux驱动开发基础总结(上篇) 8273次阅读
- 基于FPGA嵌入式系统的设备驱动开发 2134次阅读
- 关于Linux设备驱动中input子系统的介绍 2553次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多