嵌入式系统的构建

Page 167

第六章 设备驱动程序 6.1. 概述 在我们刚开始接触计算机,学习基础知识时就知道根据冯.诺依曼结构,典型的计算机 系统可分为运算器、控制器、存储器、输入输出设备五部分。其中输入输出设备,在计算 机系统中起着至关重要的作用,它不仅是人机交互的桥梁,更是对计算机性能的有力扩展。 在嵌入式系统中,也是如此。作为一个实用的嵌入式系统,无论是用于人机交互的基本外 设,如触摸屏、小键盘、LCD 等,还是用来完成其他具体应用功能的硬件板卡都属于输入 输出设备。如何有效的管理这些输入输出设备,是操作系统要解决的一个重要问题。本章 将介绍 linux/uclinux 中设备管理的基本原理,并重点介绍设备驱动程序的实现细节。 linux 作为 unix 的一个变种,它继承了 unix 的设备管理方法,将所有的设备看作具体 的文件,通过文件系统层对设备进行访问。所以在 linux/uclinux 的框架结构中,和设备相 关的处理可以分为两个层次――文件系统层和设备驱动层。设备驱动层屏蔽具体设备的细 节,文件系统层则向用户提供一组统一的规范的用户接口。这种设备管理方法可以很好的 做到“设备无关性” ,使 linux/uclinux 可以根据硬件外设的发展进行方便的扩展,比如要实 现一个设备驱动程序,只要根据具体的硬件特性向文件系统的提供一组访问接口即可。整 个设备管理子系统的结构如图 6.1 所示。

用 户 进 程

文 件 系 统 层

设 备 驱 动 层

硬 件 层

图 6.1 设备驱动分层示意图 z

用户进程 用户进程一般位于内核之外,当它需要操作设备时,可以就像访问普 通文件一样,通过调用 read(),write()等文件操作系统调用来完成对设备文件的访问 和控制。

z

文件系统层 它位于用户进程层下面,属于内核空间,基本功能是执行适合于所 有设备的输入输出功能,使用户透明的访问文件。通过本层的封装,设备文件在上 一层看来就和普通文件没有区别,也拥有读、写和执行权限,拥有和它对应的索引 节点等。在用户进程发出系统调用要求输入输出操作时,文件系统层就处理请求的 权限,通过设备驱动层的接口将任务传到驱动程序。

- 161 -


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.