1 设备驱动概述

软件与硬件互补

 

硬件是底层基础,是所有软件得以运行的平台,代码最终会落实为硬件上的组合逻辑与时序逻辑;

软件则实现了具体应用,它按照各种不同的业务需求而设计,满足了用户的需求。

硬件较固定,软件则很灵活

 

 

 

设备驱动

 

硬件和软件之间的纽带

 

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

 

通过设备驱动应用软件只需要调用系统软件的应用编程接口(API)就可让硬件去完成要求的工作

 

 

 

没有操作系统

设备驱动的接口被直接提交给了应用软件工程师,应用软件直接访问了设备驱动的接口

 

存在操作系统

设备驱动变成了连接硬件和内核的桥梁,操作系统通过给设备驱动制造麻烦来给上层应用提供便利

 

操作系统作用

多任务并发、、、内存管理机制

 

 

 

驱动针对的对象

是存储器和外设,Linux 将存储器和外设分为3 个基础大类,

字符设备-----必须以串行顺序依次进行访问的设备,如触摸屏、磁带驱动器、鼠标;

块设备--------任意顺序进行访问,以块为单位进行操作,如硬盘、软驱;

网络设备------面向数据包的接收和发送。

 

 

 

设备驱动与整个软硬件系统的关系

字符设备与块设备都被映射到Linux 文件系统的文件和目录,通过文件系统的系统调用接口open()、write()、read()、close()等函数即可访问字符设备和块设备,C库函数中的fopen()、fwrite()、fread()、fclose()分别会调用操作系统API的open()、write()、read()、close()函数。

 

 

应用程序、linux内核、驱动程序、硬件的关系

 

linux内核分为5大部分:多任务(进程)管理、内存管理、文件系统管理、设备管理、网络管理;

每一部分都有承上下的作用,对上提供API接口,提供给应用开发工程师使用;

对下通过驱动程序屏蔽不同的硬件构成,完成硬件的具体操作。

http://hi.csdn.net/attachment/201109/22/0_1316676524XjQA.gif

 

猜你喜欢

转载自blog.csdn.net/weixin_42415578/article/details/82626064
今日推荐