资料介绍
对多数驱动程序开发的学习者来说,总是感觉很难⼊门,不能从
整体上把握驱动程序是如何驱动硬件设备⼯作的。本文以Linux内
核中8139网卡驱动为例,对驱动程序的⼯作过程进行详细的分析,
为初学者拨开迷雾,走出雾里看花的迷茫。本文虽然以Linux驱动
为例,但是技术总是相通的,为了给Windows驱动初学者同样的启
发,我有意的借用了许多Windows驱动中的名词,同时顺便略述了
Windows驱动中的⼀些容易让初学者感到迷惑的概念。
Rtl8139是⼀个PCI网卡,老式的设备地址是固定的,对设备的扩充通
常通过跳线等方式来更改地址以避免地址冲突,例如通过跳线来设置IED
主盘,从盘。PCI总线设备可以通过软件编程灵活的设置各个设备的地
址。在操作系统启动的时候,系统根据PCI总线协议规范对主板上的PCI
进行扫描,同时为发现的设备配置相关资源,包括中断请求号,地址空
间等。每⼀个PCI设备上有⼀个配置空间,配置空间中包含了设备的基本
信息,例如设备类别ID,⼚商ID,设备板载存储空间等信息,操作系统
在扫描所有的PCI设备后,可以根据这些信息统⼀分配地址资源以避免
地址冲突。系统通过在PCI设备中的基地址寄存器中写⼊⼀个分配到的
基地址,之后CPU在指令执行的时候给出⼀个地址,这个地址首先送到
Host-PCI桥,就是我们通常所说的北桥,北桥判断出这个地址是落在内
存或是PCI等设备的地址空间上1,如果落在PCI空间地址中,则北桥通过
PCI总线仲裁申请,把地址送到PCI总线上,总线上的每⼀个PCI设备会根
据自⼰的存储空间⼤⼩以及基地址寄存器中的值来比较,如果被寻址的
地址落在自⼰的地址空间范围内,则该设备会作为PCI从设备响应完成数
据传输。这就是说,系统上的设备都有自⼰的地址空间,以总线带宽为
32位的系统为例,可以容纳的地址空间为4G,CPU在这4G的地址空间⼀部
分划分到内存空间,还有以部分很可能划分给PCI等外部设备,这通常取
决于硬件系统设计者。PCI设备灵活的配置方式也不可避免的带来了复杂
性。PCI协议对设备的枚举,检测,配置的过程是复杂的,通常操作系统
提供了PCI总线协议驱动程序,并在启动的时候完成了这⼀复杂的过程,
这样⼤⼤减⼩了PCI设备驱动程序开发者的⼯作量。这就好像平时⼤家
做网络程序开发的时候都没必要自⼰实现TCP/IP协议⼀样。用Windows的
术语来说,对PCI设备的枚举由总线驱动程序完成,而具体的对PCI设备
的控制是功能驱动程序的⼯作。本文要描述的是Rtl8139网卡功能驱动程序。对PCI协议有⼀定了解是必要的。关于PCI总线驱动程序的知识可以阅读《Linux内核情景分析》。
- 使用RTL8139网卡改制AT89C51编程器的相关文件免费下载 30次下载
- RTL8139C RTL8139C-LF RTL8139CL RTL8139CL-LF 23次下载
- Linux下8019网卡驱动程序 13次下载
- RTL8139(PCI TO LAN)驱动下载
- VxWorks下网卡驱动程序的开发
- NE2000网卡芯片驱动程序
- VxWorks下网卡驱动程序的开发Development o
- realtek rtl8110sc网卡驱动 -下载
- Realtek RTL 8150网卡驱动程序 -下载
- rtl8139网卡驱动xp最新版 -下载 0次下载
- 8139网卡驱动程序下载
- RTL8150L USB网卡驱动程序下载
- 8139d网卡驱动程序下载
- usb网卡驱动程序下载(万能全集)
- davicom 9102网卡驱动程序下载
- 怎么编写Framebuffer驱动程序 402次阅读
- 无线网卡驱动怎么安装 无线网卡怎么连接台式电脑 2315次阅读
- 了解和使用无操作系统和平台驱动程序 1066次阅读
- NDIS小端口驱动程序实现的关键技术和应用研究 2214次阅读
- 在VxWorks系统下改善RTL8139驱动实现提高其稳定性和效率 1210次阅读
- 基于TMS320VC5410 DSP的PCI语音卡和WDM设备驱动程序设计 2807次阅读
- 米尔科技LINUX设备驱动程序教程 1965次阅读
- 浅谈电脑驱动程序的工作原理 详解电脑驱动程序意义 2.9w次阅读
- 可动态安装的Linux设备驱动程序 955次阅读
- 8255A驱动程序 3192次阅读
- 8155驱动程序 3057次阅读
- 解析修改CentOS7网卡名字的步骤 5542次阅读
- 深入了解USB驱动之总线驱动程序 8685次阅读
- Xilinx设备的驱动程序 7967次阅读
- PCI驱动程序开发实例 6701次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1489次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 91次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 9次下载 | 免费
- 6基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
- 7基于单片机和 SG3525的程控开关电源设计
- 0.23 MB | 3次下载 | 免费
- 8基于单片机的红外风扇遥控
- 0.23 MB | 3次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30319次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537791次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233045次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多