广告
返回顶部
首页 > 资讯 > 操作系统 >Linux系统的硬件设备驱动有什么作用
  • 597
分享到

Linux系统的硬件设备驱动有什么作用

2023-06-12 21:06:03 597人浏览 薄情痞子
摘要

本篇内容介绍了“linux系统的硬件设备驱动有什么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是驱动?最通俗的解释就是“驱使硬件设

本篇内容介绍了“linux系统的硬件设备驱动有什么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

什么是驱动?
最通俗的解释就是“驱使硬件设备行动”
 
作用?
设备驱动与底层硬件直接打交道,按照硬件设备的具体工作方式读写设备寄存器,完成设备的轮询、中断处理、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系统的硬件设备驱动有什么作用

时序分析:对驱动工程师或硬件工程师而言,时序分析的意思是让芯片之间的访问满足芯片手册中时序图信号有效的先后顺序、采样建立时间和保持时间的要求,在电路板工作不正常的时候,准确的定位时序方面的问题
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系统只能通过系统调用和硬件中断完成从用户空间到内核空间的控制转移。

“Linux系统的硬件设备驱动有什么作用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Linux系统的硬件设备驱动有什么作用

本文链接: https://www.lsjlt.com/news/262947.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux系统的硬件设备驱动有什么作用
    本篇内容介绍了“Linux系统的硬件设备驱动有什么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是驱动?最通俗的解释就是“驱使硬件设...
    99+
    2023-06-12
  • win8系统在新界面安装与使用硬件设备驱动详细图解
      Windows 8在功能上的最大亮点就是新界面及新界面应用,硬件设备驱动在新界面中也能够顺利的安装和使用。具体方法如下:   第一步:鼠标移动到右上或者右下角,在侧边栏单击“设置&rdquo...
    99+
    2022-06-04
    硬件 设备 详细
  • Linux操作系统中的块设备是什么
    这篇文章主要介绍了Linux操作系统中的块设备是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux操作系统中的块设备是什么文章都会有所收获,下面我们一起来看看吧。在Windows操作系统下磁盘设备似乎...
    99+
    2023-06-16
  • SAP Cloud for Customer使用移动设备访问系统的硬件要求
    如果用平板电脑的话,推荐的设备列表:AndroidSamsung Galaxy Tab S2○Processor: 2 x quad-core CPU -- 1.9 and 1.3 gigahertz (GHz)○Memory: 3 gig...
    99+
    2023-06-04
  • Linux操作系统定时备份文件的方法是什么
    Linux操作系统定时备份文件的方法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。对于站长来说,养成良好的备份习惯是非常重要的。无论性能多么好的美国服务器,都有出现问题的...
    99+
    2023-06-05
  • Windows系统中出现无法加载这个硬件的设备驱动程序(代码39)的解决方法介绍
    近日不知何故,光驱和虚拟光驱盘符都不见了,查看系统发现硬件前面有黄色感叹号,无法使用,在网上搜索,发现有很多人出现同样的问题,只是解决的方法都不对,找了两天,终于找到了解决的方法: 修复“光驱图标不见&rdq...
    99+
    2023-05-31
    Windows 无法加载 硬件 设备驱动 驱动程序 设备 代码 解决
  • Linux系统下的hosts文件有什么用
    本篇内容介绍了“Linux系统下的hosts文件有什么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!hosts文件hosts &m...
    99+
    2023-06-12
  • Linux系统中bashrc和profile文件的作用是什么
    这篇文章将为大家详细讲解有关Linux系统中bashrc和profile文件的作用是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。使用终端ssh登录Linux操作系统的控制台后,会出现一...
    99+
    2023-06-12
  • MTP连到系统上的设备没有发挥作用怎么办
    这期内容当中小编将会给大家带来有关MTP连到系统上的设备没有发挥作用怎么办,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。  MTP是一种网络传输机制,具体的不用深究,我们只要知道如今的安卓手机连接电脑后选...
    99+
    2023-06-06
  • Linux的文件系统、服务、防火墙、SELINUX有什么用
    本文小编为大家详细介绍“Linux的文件系统、服务、防火墙、SELINUX有什么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Linux的文件系统、服务、防火墙、SELINUX有什么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作