嵌入式 第6章 嵌入式Linux驱动程序开发

时间:2025-03-09

嵌入式练习

第6章 嵌入式Linux驱动程序开发 嵌入式Linux的设备管理 设备驱动程序开发过程 应用实例

197

嵌入式练习

1. 嵌入式Linux的设备管理 设备管理概述 设备类型 设备号 Linux驱动程序概念 驱动程序结构 用户访问接口 Linux对中断的处理 设备驱动的初始化 设备驱动初始化函数主要功能198

嵌入式练习

1.1 设备管理概述linux 将所有的设备看作具体的文件,通过 第六章 文件系统层对设备进行访问。这样可以很好的 做到“设备无关性”。可以把Linux对设备的管 1 2 3 嵌设应 理划分成四个层次:用户进程 文件系统层 设备驱动层 硬件层 入备用 式驱实 动例 程 的序 设开 备发 管过 理程 Linux

它们之间的关系如右 图所示:

199

嵌入式练习

1.1 设备管理概述用户进程 用户进程一般位于内核之外,当它需要操 作设备时,可以就像访问普通文件一样,通过调用 第六章 read(),write()等文件操作系统调用来完成对设备文 1 2 3 件的访问和控制。 嵌设应 文件系统层:向用户提供一组统一的用户接口。它 入 备 用 位于用户进程层下面,属于内核空间,基本功能是 式 驱 实 动例 执行适合于所有设备的输入输出功能,使用户透明 程 的访问文件。在用户进程发出系统调用要求输入输 的序 出操作时,由文件系统层就处理请求的权限。 设开 设备驱动层:用于屏蔽具体设备的细节,设备驱动 备 发 过 程序位于内核中,它根据文件系统层的输入输出请 管 程 求来操作硬件上的设备控制器,完成设备的初始 理 化、打开释放设备以及数据在内核和设备间的传递 等操作。 Linux200

嵌入式练习

1.2 设备类型Linux 中的设备可以分为三类:字符设备:数据的处理是以字节为单位按顺序进 第六章 行的,没有数据缓冲区,也不支持随机读写。嵌 1 2 3 入式系统中简单的按键、触摸屏、手写板都属于 嵌 设 应 字符设备。 入备用 块设备:是指那些在输入/输出时数据处理以块为 式 驱 实 动例 单位的设备,它一般都采用了缓存技术,支持数 程 据的随机读写。典型的块设备有硬盘、cd-rom 等。对用户来说块设备和字符设备的访问接口都 的 序 是一样的,区别仅在内核和驱动程序的软件接口 设 开 上。 备发 管过 网络设备:实现方法不同于以上两种设备,它面 理程 向的上一层不是文件系统层而是网络协议层,内 核和网络设备驱动程序间的通信,与字符设备和 块设备也完全不同。 Linux201

嵌入式练习

1.3 设备号传统的设备管理上,除了设备类型外,linux 第六章 内核还需要一对被称作为主设备号、次设备号 1 2 3 的参数,才能唯一的标识设备。主设备号:标识设备对应的驱动程序。系统中不 同的设备可以有相同的主

设备号,主设备号相同 的设备使用相同的驱动程序,内核利用主设备号 将设备与相应的驱动程序对应起来。 次设备号:用来区分具体驱动程序的实例。从上 面可以知道,一个主设备号可能有多个设备与之 对应,这多个设备正是在驱动程序内通过次设备 号来进一步区分的。次设备号只能由设备驱动程 序使用,内核的其他部分仅将它作为参数传递给 驱动程序。

嵌设应 入备用 式驱实 动例 程 的序 设开 备发 管过 理程

Linux

202

嵌入式练习

1.4 Linux驱动程序概念设备驱动程序是操作系统内核与机器硬件之 间的接口,设备驱动程序为应用程序屏蔽了硬 件的细节,从应用程序来看,硬件设备只是一 个设备文件,应用程序可以向操作普通文件一 样对硬件设备进行操作,设备驱动程序属于内 核,主要功能有:对设备初始化和释放。 把数据从内核传送到硬件和从硬件读取数据。 传送应用程序和设备文件之间的数据 检测和处理设备出现的错误。

第六章1 2 3

嵌设应 入备用 式驱实 动例 程 的序 设开 备发 管过 理程

Linux

设备驱动程序的开发方式主要有两种:基于 内核的方式和基于模块的方式。203

嵌入式练习

1.5 驱动程序结构Linux的设备驱动程序分为三个主要部分:自动配臵和初始化子程序:负责监测所要驱动的 第六章 硬件设备是否存在和能否正常工作。仅在初始化 1 2 3 时被调用一次。 嵌设应 服务于I/O请求的子程序:也称为驱动程序的上半 入 备 用 部分。这部分程序由系统调用执行,和调用进程 式 驱 实 动例 属于同一个进程, 具有调用进程的运行环境,只 程 是由用户态变成了核心态。 中断服务子程序:也称为驱动程序的下半部分。 的 序 开 由Linux系统接收,再由系统调用中断服务子程 设 发 备 序。 管过 中断可以在任何一个进程运行时产生,因而中 理 程 断应该独立于任何进程。 同一个中断可以服务于多个设备,因而应该为 中断程序提供请求服务设备的标示参数。 Linux204

嵌入式练习

1.5 用户访问接口对用户程序而言,设备驱动程序隐藏了设备 的具体细节,对各种不同设备提供了一致的接 口,I/O 设备的存取可以通过一组固定的入口点 来进行,这组入口点是由每个设备的设备驱动 程序提供的。主要包括:open 入口点:打开设备准备I/O 操作。 release 入口点:关闭由open()函数打开的文件 read 入口点:从设备上读数据。对于有缓冲区 …… 此处隐藏:2753字,全部文档内容请下载后查看。喜欢就下载吧 ……

嵌入式 第6章 嵌入式Linux驱动程序开发.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219