VxWorks设备驱动[曹桂平著]

网络资源,学习参考

下载地址

Files:
(24 votes)

VxWorks设备驱动

Date 2019-05-06
File Size 3.37 MB
Download 3,460

VxWorks 是较为常用的嵌入式硬实时操作系统,在很多领域都有其应用的身影,然而由于 Vxworks 操作系统源代码不公开,虽然文档中对各种驱动设计都有说明,但是实际中还是会 遇到很多问题。本书根据作者的一些驱动经验,结合 Wind River 提供的一些官方文档和开 发环境下的源代码写成,对 VxWorks 各种类型设备驱动都做了比较详细的介绍和分析,可 以作为 VxWorks 下设备驱动设计的指南。另外对于各种类型的 VxWorks 启动方式以及映像 文件组成进行了较为详细的分析,将澄清 VxWorks BSP 开发者具有的很多疑问。

本书内容

本书共分为 11 章,各章内容如下:

第一章简单介绍了嵌入式系统,并对 Vxworks 操作系统特性进行了简单的说明。

第二章对 VxWorks 操作系统几个主要组成方面进行了比较详细的介绍,包括任务,任务调 度,任务间通信,内存管理,中断处理。我们不做翻译官方文档的工作,结合作者经验有感 而发。

第三章对 VxWorks 内核映像类型以及启动方式进行了详细分析,并对下载方式中使用的 bootrom 进行了较为深入的分析和介绍,此后对 VxWorks 操作系统启动过程进行了梳理。本 章将澄清读者对 VxWorks 启动方面的很多疑问。

第四章讨论了驱动程序的基本功能和结构,对驱动程序中常用的一些策略以及注意事项进行 了介绍。

第五章介绍了 VxWorks 设备驱动的内核结构层次,着重对 IO 子系统及其维护的三张系统表 进行了讨论,并对 VxWorks 下已有的几个较为常用的驱动以代码示例的方式介绍了其使用 方法。

第六章开始进入具体设备驱动的设计,在本章中我们将从结构层次最为简单的普通字符设备 驱动开始讲起,以一个 SPI 接口驱动代码为例,着重讨论了普通字符设备驱动的结构,设计 方式和具体实现。

第七章对串口驱动设计和实现进行了详细的分析。串口也是字符设备的一种,由于其常用性,VxWorks 内核专门提供了 TTY 中间层来提高串口驱动设计的效率,降低串口驱动设计的复 杂度。

第八章进入到第二大类设备-块设备驱动的设计和实现的分析中。我们将从数据结构出发, 分析块设备驱动的基本结构,进而讨论其具体实现。VxWorks 下块设备驱动工作方式比较特 殊,其使用阻塞读写方式,不同于通用操作系统下中断读写方式,这与 VxWorks 特殊的工 作环境有关。

第九章我们将对 FLASH 设备驱动进行详细介绍。Flash 设备是嵌入式平台上最为常见和常 用的设备,用以存储操作系统内核映像和用户数据。本章将以 VxWorks 内核提供的 TrueFFS 中间层进行展开,分析 Flash 设备驱动涉及的各个方面。

第十章进入到第三大类设备-网络设备驱动的设计和实现中。网络设备由于其独特的工作方 式,其内核驱动层次不同于其他两类设备(字符,块设备),其不属于 IO 子系统管理,而 是直接工作在内核网络栈实现下,为了简化网络设备驱动设计的复杂度,VxWorks 提供 MUX 中间层,在该层次下实现的驱动通常被称为增强型网络驱动,本章同样也是从数据结构出发, 以实际项目中使用的网口驱动代码为例,逐步完成对网络设备驱动的设计和实现。

第十一章分析了 USB 设备驱动的设计和实现。本章首先对 USB 本身进行了详细的介绍,之 后对我们要驱动对象进行了澄清,一般而言,USB 设备驱动指的是对 USB 主机或者目标机 控制器的驱动,这个驱动由于与内核 USB 栈耦合较紧密,故必须对内核 USB 栈的实现有一 个很清楚的了解才能成功完成 USB 主机控制器的驱动开发。本章首先跟随一个 USB 类驱动 层读数据请求,对请求在内核 USB 栈中的传递路径进行了跟踪,对路径上调用的关键函数 以及使用的数据结构进行了较为详细的分析和介绍,之后以 Mass Storage 类驱动为例,介绍 了类驱动的初始化过程,并以 UHCI 控制器驱动为例,介绍了主机控制器驱动的初始化过程, 之后总结出了 USB 主机控制器的驱动结构,并给出了驱动中两个中心函数的实现框架。