新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 嵌入式Linux设备驱动开发之:设备驱动概述

嵌入式Linux设备驱动开发之:设备驱动概述

作者: 时间:2013-09-13 来源:网络 收藏

本文引用地址://www.cghlg.com/article/257112.htm

11.1.5程序与外界的接口

每种类型的驱动程序,不管是字符设备还是块设备都为内核提供相同的调用接口,因此内核能以相同的方式处理不同的设备。Linux为每种不同类型的程序维护相应的数据结构,以便定义统一的接口并实现驱动程序的可装载性和动态性。Linux程序与外界的接口可以分为如下3个部分。

n 驱动程序与内核的接口:这是通过数据结构file_operations(在本书后面会有详细介绍)来完成的。

n 驱动程序与系统引导的接口:这部分利用驱动程序对设备进行初始化。

n 驱动程序与设备的接口:这部分描述了驱动程序如何与设备进行交互,这与具体设备密切相关。

它们之间的相互关系如图11.2所示。

图11.2设备驱动程序与外界的接口

11.1.6设备驱动程序的特点

综上所述,Linux中的设备驱动程序有如下特点。

(1)内核代码:设备驱动程序是内核的一部分,如果驱动程序出错,则可能导致系统崩溃。

(2)内核接口:设备驱动程序必须为内核或者其子系统提供一个标准接口。比如,一个终端驱动程序必须为内核提供一个文件I/O接口;一个SCSI设备驱动程序应该为SCSI子系统提供一个SCSI设备接口,同时SCSI子系统也必须为内核提供文件的I/O接口及缓冲区。

(3)内核机制和服务:设备驱动程序使用一些标准的内核服务,如内存分配等。

(4)可装载:大多数的Linux设备驱动程序都可以在需要时装载进内核,在不需要时从内核中卸载。

(5)可设置:Linux设备驱动程序可以集成为内核的一部分,并可以根据需要把其中的某一部分集成到内核中,这只需要在系统编译时进行相应的设置即可。

(6)动态性:在系统启动且各个设备驱动程序初始化后,驱动程序将维护其控制的设备。如果该设备驱动程序控制的设备不存在也不影响系统的运行,那么此时的设备驱动程序只是多占用了一点系统内存罢了。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

linux相关文章:linux教程



上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭