资料介绍
分享到:标签:嵌入式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设备驱动开发详解 56次下载
- 《Linux设备驱动开发详解》第5章、Linux文件系统与设备文件系统 0次下载
- 《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设备驱动开发详解》第16章、Linux网络设备驱动 5次下载
- 《Linux设备驱动开发详解》第17章、Linux音频设备驱动 17次下载
- 《Linux设备驱动开发详解》第18章、LCD设备驱动 13次下载
- 《Linux设备驱动开发详解》第23章、Linux设备驱动的移植 9次下载
- Linux设备驱动开发入门
- Linux的设备驱动程序开发
- 嵌入式Linux设备驱动开发
- Linux 驱动开发与应用开发,你知道多少? 2.2k次阅读
- Linux内核驱动与单个PCI设备的绑定和解绑定 2.9k次阅读
- 一文总结linux的platform驱动 2.2k次阅读
- 如何写一个Linux设备驱动程序 5.5k次阅读
- Linux设备驱动开发的基本知识 4.9k次阅读
- Linux驱动到底能不能在应用层开发驱动 6.7k次阅读
- 米尔科技Linux设备驱动研究浅谈 2.5k次阅读
- 米尔科技LINUX设备驱动程序教程 2.7k次阅读
- 基于PXA255开发板外围字符设备的嵌入式Linux字符设备驱动设计与应用 1.5k次阅读
- 基于嵌入式Linux内核的系统设备驱动程序开发设计 1.5k次阅读
- 可动态安装的Linux设备驱动程序 1.2k次阅读
- 想要驾驭Linux驱动开发,必须深刻理解Linux总线设备驱动框架 1.1w次阅读
- 嵌入式Linux驱动开发基础总结(上篇) 9k次阅读
- 基于FPGA嵌入式系统的设备驱动开发 2.7k次阅读
- 关于Linux设备驱动中input子系统的介绍 3k次阅读
下载排行
本周
- 1冷柜-电气控制系统讲解
- 13.68 MB | 4次下载 | 10 积分
- 2安川A1000变频器中文版说明书
- 20.16 MB | 3次下载 | 3 积分
- 3直流电路的组成和基本定律
- 1.67 MB | 2次下载 | 免费
- 4丹佛斯2800系列变频器说明书
- 8.00 MB | 1次下载 | 5 积分
- 5PC8011同步开关型降压3.5A单节锂电池充电管理电路技术手册
- 0.74 MB | 1次下载 | 免费
- 6ES7243E+ES8311音频录制与播放电路资料
- 0.06 MB | 1次下载 | 5 积分
- 7SDM02 激光测距模块产品手册
- 0.43 MB | 1次下载 | 免费
- 8SDFM 激光测距模块模组手册
- 0.54 MB | 1次下载 | 免费
本月
- 1CH341编程器软件NeoProgrammer_2.2.0.10
- 20.47 MB | 170次下载 | 1 积分
- 22025智能家居传感器市场分析及创新应用
- 3.11 MB | 43次下载 | 免费
- 3RV1126B系列开发板产品资料
- 4.19 MB | 18次下载 | 免费
- 4CH341编程软件下载
- 2.50 MB | 16次下载 | 5 积分
- 5全志系列-米尔基于T153核心板开发板 四核异构、3路千兆网,赋能多元化工业场景
- 3.05 MB | 12次下载 | 免费
- 6【开源】60余套STM32单片机、嵌入式Linux、物联网、人工智能项目案例及入门学习资源包
- 10.55 MB | 8次下载 | 免费
- 7冷柜-电气控制系统讲解
- 13.68 MB | 4次下载 | 10 积分
- 8特斯拉MODEL S车载充电机主电路回路原理图
- 0.81 MB | 4次下载 | 3 积分
总榜
- 1matlab软件下载入口
- 未知 | 935137次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420064次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233094次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191448次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183356次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81604次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73824次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65991次下载 | 10 积分
电子发烧友App





创作
发文章
发帖
提问
发资料
发视频
上传资料赚积分
评论