驱动管家:安全、高效、精准的专业驱动下载站!

Linux系统的硬件设备驱动的结构讲解

2018-03-13 12:11:57责编:陈炼慈   来源:驱动管家     人气:

什么是驱动?

最通俗的解释就是“驱使硬件设备行动”

作用?

设备驱动与底层硬件直接打交道,按照硬件设备的具体工作方式读写设备寄存器,完成设备的轮询、中断处理、DMA通信,进行物理内存向虚拟内存的映射,最终使通信设备能够收发数据,使显示设备能够显示文字和画面,使存储设备能够记录文件号数据

计算机系统的硬件主要有cpu、存储器、外设组成。但是随着IC制造工艺的发展,目前,芯片的集成度越来越高,往往cpu内部就集成了存储器和外设适配器。ARM处理器集成了UART、I2C控制器(2==平方)、USB控制器、SDRAM控制器等

Linux系统的硬件设备驱动的结构讲解

驱动针对的对象是存储器和外设(包括cpu内部集成的存储器和外设),而不是针对cpu核。Linux将存储器和外设分为3个基础大类:字符设备、块设备、网络设备

字符设备之那些必须以串行顺序依次进行访问的设备,如触摸屏、磁带驱动器、鼠标等。可设备可以按照任意顺序进行访问,以块为单位进行操作,如硬盘、软驱等。字符设备不经过系统的快速缓冲,而块设备经过系统的快速缓冲。但是,字符设备和块设备并没有明显的界限,如flash设备符合块设备的特点,但是我们仍然可以把它作为一个字符设备来访问

在Linux系统中,网络设备面向数据包的接收和发送而设计,它并不对应于文件系统的节点。内核与网络设备的通信和内核与字符设备、块设备的通信方式完全不同。

Linux系统的硬件设备驱动的结构讲解

如上图所示,除网络设备外,字符设备与块设备都被映射到Linux文件系统的文件和目录,通过文件系统的系统调用接口open()、write()、read()、close()等函数即可访问字符设备和块设备。块设备比字符设备复杂,在它上面会首先建立一个磁盘/Flash文件系统,如FAT、Ext3、YAFFS、JFFS等FAT、Ext3、YAFFS、JFFS规范了文件和目录在存储介质上的组织

应用程序可以使用Linux的系统调用接口编程,也可由使用c库函数,出于可移植性的考虑,后者更值得推荐。c库函数本身也是通过系统调用接口而实现的

在嵌入式系统的设计中,LED一般直接由cpu的GPIO控制。GPIO一般有两组寄存器控制,即一组控制寄存器和一组数据寄存器。控制寄存器可设置GPIO口的工作方式为输入或输出。当引脚设置为输出时,向数据寄存器的对应位写入1和0会分别在引脚上产生高电平和低电平;当引脚设置为输入时,读取数据寄存器的对应位可获得引脚上相应的电平信号。

驱动设计的硬件基础

处理器的分类,如下图所示:

Linux系统的硬件设备驱动的结构讲解

存储器可分为只读存储器(ROM)、闪存(Flash)、随机存取存储器(RAM)、光介质存储器和磁介质存储器

Nor Flash和cpu的接口属于典型的类SRAM接口,不需要增加额外的控制电路。Nor Flash的特点是可芯片内执行,程序可以直接在Nor内运行。而Nand Fash和cpu的接口必须由相应的控制电路进行转换,当然也可以通过地址线或GPIO产生Nand Flash接口的信号。Nand Flash以块方式进行访问,不支持芯片内执行。

Flash的编程原理都是只能将1写为0,而不能将0写完1.所以在Flash编程之前必须将对应的块擦除,而擦除的过程就是把所有的位都写为1的过程,块内的所有字节变为1xFF

存储器的分类,如下图所示:

Linux系统的硬件设备驱动的结构讲解

原理图分析:通过阅读电路板的原理图获得各种存储器、外设所使用的硬件资源,主要包括存储器和外设控制芯片所使用的片选、中断、DMA资源。通过分析片选得出芯片的内存、I/O基地址,通过分析中断、DMA信号获得芯片使用的中断号和DMA通道,归纳出类似下表:

Linux系统的硬件设备驱动的结构讲解

时序分析:对驱动工程师或硬件工程师而言,时序分析的意思是让芯片之间的访问满足芯片手册中时序图信号有效的先后顺序、采样建立时间和保持时间的要求,在电路板工作不正常的时候,准确的定位时序方面的问题内核及内核编程

在设备驱动方面,Linux2.6相对于Linux2.4有较大的改动,这主要表现在内核API中增加了不少新功能(如内存池)、sysfs文件系统、内核模块从.o变为.ko、驱动模块编译方式、模块使用计数、模块加载和卸载函数的定义等方面

Linux内核主要有进程调度、内存管理、虚拟文件系统、网络接口和进程间通信等5个子系统组成,如下图:

Linux系统的硬件设备驱动的结构讲解

在设备驱动编程中,当请求的资源不能满足时,驱动一般会调度其他线程执行,并使驱动对应的进程进入睡眠状态,直到它请求的资源被释放,才会被唤醒而纪念日就绪状态

在设备驱动编程中,如果需要几个并发执行的任务,可以启动内核线程,启动内核线程的函数为:int kernel_thread(int (*fn)(void *), void *arg, unsigned long flags);

Linux内存管理完成为每个进程进行虚拟内存到物理内存的转换。一般而言,Linux的每个进程享有4GB的内存空间,0-3GB属于用户空间,3-4GB属于内核空间,内核空间对常规内存、I/O设备内存以及高端内存存在不同的处理方式

虚拟文件系统隐藏了各种硬件的具体细节,为所有的设备提供了统一的接口。而且,它独立于各个具体的文件系统,是对各种文件系统的一个抽象,它使用super block存放文件系统相关信息,使用索引节点inode存放文件的物理信息,使用目录项dentry存放文件的逻辑信息

Linux系统只能通过系统调用和硬件中断完成从用户空间到内核空间的控制转移。

  • 华硕笔记本的驱动在哪里可以下载?

    华硕笔记本的驱动在哪里可以下载?

    华硕在国内还算是个名声比较好的品牌,选择华硕的用户也是非常的多。关于华硕笔记本驱动的下载地址我们可以直接在话说的官网上下载,话说的官网上有全部产品的驱动,在官网上可以直接找到你电脑相应的型号下载,

    详情2017-11-28 14:52:43责编:dj   来源:驱动管家     
  • win8怎么对磁盘进行分析和优化

    win8怎么对磁盘进行分析和优化

    首先将鼠标滑动至屏幕右下角调出Charm栏,然后选择设置,接着选择电脑信息。在系统窗口左侧的最下方,我们能够看到性能信息和工具的选项。 性能信息和工具入口 进入性能管理界面后把目光移到左侧的高级工具,在这里我们就能看到很多性能管理的工具了,包括打

    详情2018-03-06 17:53:08责编:陈炼慈   来源:驱动管家     
  • WIN8系统安装TL-WN725N无线网卡驱动图文教程

    WIN8系统安装TL-WN725N无线网卡驱动图文教程

    有些用户的台式电脑或笔记本没有配置无线网卡,那么选购一个无线网卡让电脑也可以轻松使用无线wifi网络,而新买的无线网卡需要在电脑上正确安装驱动才能正常使用,不同的操作系统下安装无线网卡驱动方法也有所不

    详情2018-03-01 09:02:39责编:农桂婷   来源:驱动管家     
  • 驱动人生怎么下载win10体验系统并安装教程

    驱动人生怎么下载win10体验系统并安装教程

    如何用驱动人生下载win10体验系统并安装教程来啦!很多用户想要升级win10系统体验一下,但由于微软还没对外发布正式版,网上找的又不安全,那么小编为大家推荐一个安全稳定的win10体验渠道,驱动人生下载win10体验

    详情2018-03-06 14:24:35责编:陈炼慈   来源:驱动管家     
  • 关于电脑驱动的这些问题你都知道多少?

    关于电脑驱动的这些问题你都知道多少?

    电脑驱动是我们的电脑必不可少的一个重要组成部分,因为我们电脑硬件是无法直接连接操作系统的,它需要一个中间件来连接,这个时候驱动的作用就是让硬件和操作系统进行通信,把硬件的操作转换成机器语言。驱动程

    详情2017-11-22 18:03:13责编:dj   来源:驱动管家     
  • 联想ThinkPad E40的驱动怎么下载

    联想ThinkPad E40的驱动怎么下载

    联想ThinkPad E40的驱动怎么下载?联想ThinkPad E40笔记本是不带任何光盘的,但是在联想的官网上是可以下载到常用的驱动的。进入联想产品官网后,选择ThinkPad,然后选择E40,然后选择自己序列号的四位号码,既

    详情2017-10-31 09:14:04责编:农桂婷   来源:驱动管家     
  • MAC笔记本装双系统后没有驱动怎么办?

    MAC笔记本装双系统后没有驱动怎么办?

    苹果笔记本装双系统一般都是用系统自带的BootCamp,我们之前做系统用的BootCamp后的U盘里面就有苹果为我们准备的驱动了

    详情2018-03-08 14:58:06责编:陈炼慈   来源:驱动管家     
  • win7系统不能安装驱动是什么原因?电脑驱动安装的先后顺序是什么

    win7系统不能安装驱动是什么原因?电脑驱动安装的先后顺序是什么

    大家都知道当我们在安装完windows7操作系统的时候,都是需要我们自己重新安装电脑的驱动程序,不过在安装的过程中有可能会遇到无法安装驱动的问题,而导致驱动程序无法安装的原因有很多,那么具体有哪些原因呢?

    详情2018-02-27 15:06:54责编:农桂婷   来源:驱动管家     
  • 神舟A560P更新usb视频设备驱动后摄像头黑屏

    神舟A560P更新usb视频设备驱动后摄像头黑屏

    神舟A560P更新usb视频设备驱动后摄像头黑屏是为什么?有什么好的解决方法吗?具体方法如下:计算机——>右键选择管理项——>设备管理器——>图像设备——>摄像头上右键更新驱动程序——>浏览计算机以查找驱动程序

    详情2017-10-27 14:03:01责编:农桂婷   来源:驱动管家     
  • 联想Y460的网卡驱动在哪里可以下载?

    联想Y460的网卡驱动在哪里可以下载?

    联想y460无线网卡驱动支持win7、WINXP操作系统的安装,如果你的联想Y460笔记本无法上网或者网卡无法被电脑识别,这个时候我们就需要去下载一个网卡驱动来实现笔记本上网的功能了。联想笔记本网卡驱动的下载方法有

    详情2017-11-29 12:29:21责编:dj   来源:驱动管家