书籍详情
VxWorks内核、设备驱动与BSP开发详解(第2版)
作者:张杨 等编著
出版社:人民邮电出版社
出版时间:2011-03-01
ISBN:9787115244727
定价:¥49.00
购买这本书可以去
内容简介
在嵌入式行业飞速发展的今天,嵌入式操作系统的应用越来越广泛,VxWorks具有良好的实时性,被大量应用于航空、通信、国防、工业控制、网络设备、医疗设备、消费电子等嵌入式实时应用领域。《VxWorks内核设备驱动与BSP开发详解》(作者张杨、于银涛)共24章,按照初学者学习的一般步骤,详细介绍了vxworks的开发环境、内核分析和应用程序开发、驱动程序开发与原理和板级支持包流程与移植,每章均配以实例进行讲解。《VxWorks内核设备驱动与BSP开发详解》语言通俗、实例丰富、代码分析详尽,有较强的实用性和参考价值,适合大专院校嵌入式相关专业学生学习参考,也可供嵌入式开发人员和系统设计人员参考使用。
作者简介
暂缺《VxWorks内核、设备驱动与BSP开发详解(第2版)》作者简介
目录
第1部分 VxWorks的开发环境
第1章 使用Tornado
1.1 概述
1.2 Tornado的安装目录
1.3 创建一个工程
1.3.1 可加载工程和可引导工程
1.3.2 实例:创建可加载工程
1.3.3 实例:创建可引导工程
1.4 更加有效率地工作
1.4.1 开发环境基本设置
1.4.2 实例:设置一个更熟悉的编辑器
1.4.3 使用Tcl语言定义工具
第2章 编译工程——Builder
2.1 编译工程及Boot Rom
2.1.1 编译工程
2.1.2 编译Boot Rom
2.1.3 实例:制作软盘引导盘
2.1.4 深入1:批处理文件mkboot
2.1.5 深入2:制作U盘引导盘
2.1.6 深入3:制作硬盘引导盘
2.1.7 深入4:制作一个引导ROM
2.1.8 实例:多系统并存
2.2 深入编译环境
2.2.1 创建的过程
2.2.2 抛弃IDE
2.2.3 使用Diab
2.3 了解MakeFile
2.3.1 MakeFile的作用
2.3.2 MakeFile格式
2.3.3 解决MakeFile所导致的错误
第3章 加载——FTP Server
3.1 FTP Server的设置
3.1.1 用户和权限
3.1.2 其他设置
3.1.3 实例:下载一个工程
3.2 从信息看状态
3.2.1 正常下载过程
3.2.2 下载失败的原因
3.3 从其他设备加载操作系统
第4章 管理工程——Work Space
4.1 管理文件
4.1.1 文件的位置
4.1.2 文件依赖关系
4.2 管理组件
4.2.1 VxWorks的各种组件
4.2.2 查找组件并修改属性
4.2.3 裁剪组件
4.3 编译选项
4.3.1 编译规则
4.3.2 宏定义
4.3.3 其他选项
第5章 连接目标机——Target Server
5.1 配置Target Server
5.1.1 基本配置内容
5.1.2 重要配置属性
5.2 实例:通过网络连接目标机
5.3 实例:配置串口连接主机
5.4 连接错误的解决办法
5.4.1 目标文件不正确
5.4.2 网络错误
5.4.3 目标机无响应
5.4.4 Target Server缓冲池不足
5.4.5 网络速度慢
第6章 交叉调试——Debugger
6.1 基本调试过程
6.1.1 运行Debugger
6.1.2 发起任务
6.1.3 连接任务
6.2 断点
6.2.1 设置断点
6.2.2 管理断点
6.3 独特的查看功能
6.3.1 源代码与汇编混合查看
6.3.2 调试命令行
6.3.3 其他功能
6.4 系统级调试设置
第7章 浏览目标机资源——Browser
7.1 Browser所提供的信息
7.1.1 Browser的设置
7.1.2 目标机信息
7.2 实例:透过现象看调试
7.2.1 查看内存泄露
7.2.2 分配任务优先级
7.2.3 确定任务堆栈
7.2.4 查看中断挂接情况
7.2.5 查看任务状况
第8章 与目标机的交互——Shell及其他
8.1 Shell
8.1.1 Shell的常用特性
8.1.2 Shell的快捷操作
8.1.3 Shell的常用命令
8.1.4 Shell的环境变量
8.1.5 执行脚本
8.2 WindView
8.2.1 设置WindView
8.2.2 分析任务时序图
8.3 Triggering
8.3.1 Triggering设置
8.3.2 Triggering的使用
第9章 软件硬件同时开发——VxSim
9.1 集成的VxSim
9.1.1 VxSim适用范围
9.1.2 VxSim的配置
9.1.3 VxSim的中断系统
9.2 功能更强的Full VxSim
9.2.1 Full VxSim所需的网络配置
9.2.2 创建支持网络连接的Full VxSim映像
9.2.3 启动Full VxSim
9.2.4 运行多个Full VxSim
9.3 实例:在VxSim上运行程序
第2部分 内核分析和应用程序开发
第10章 管理任务——任务的状态
10.1 任务概况
10.1.1 任务状态
10.1.2 任务调度
10.1.3 任务优先级
10.2 生成和管理任务
10.2.1 任务控制API
10.2.2 销毁任务
10.2.3 控制任务状态的切换
10.3 深入:任务切换的深层原因
10.3.1 时钟中断和时间片调度
10.3.2 优先级抢占调度机制
10.3.3 任务控制块
第11章 任务间的交互——同步与通信
11.1 任务之间的交流
11.1.1 共享内存
11.1.2 互斥
11.1.3 信号量
11.1.4 消息队列和管道
11.1.5 使用网络的任务间通信
11.1.6 信号
11.2 实例:任务间交流
11.2.1 通过信号量实现互斥
11.2.2 信号量实现同步
11.2.3 管道与消息队列
11.3 其他通信手段
第12章 控制时间——系统计时
12.1 系统时间
12.1.1 系统时间的来源
12.1.2 与现实时间相联系
12.2 系统计时控制
12.3 看门狗计时器
12.3.1 实例1:看门狗计时
12.3.2 实例2:看门狗定时
12.3.3 实例3:看门狗延时
12.4 其他的计时方法
12.4.1 使用CPU时间戳计时
12.4.2 实例:计算CPU频率
第13章 存储信息——访问文件系统
13.1 VxWorks中的文件系统
13.1.1 操作文件的办法
13.1.2 实例:文件操作
13.1.3 深入:打开文件的过程
13.1.4 深入:读取文件的过程
13.1.5 文件系统的作用
13.1.6 文件系统的特殊功能
13.1.7 文件系统的安装流程
13.2 文件系统分析
13.2.1 dosFs
13.2.2 rawFs
13.2.3 cdromFs
13.2.4 tapeFs
13.3 深入:如何提高访问效率
13.4 实例:支持多硬盘分区
第14章 与外界的交互——控制硬件
14.1 驱动程序管理
14.1.1 文件、设备、驱动程序
14.1.2 驱动管理3张表
14.1.3 驱动及设备的管理
14.2 访问硬件的手段
14.2.1 创建设备
14.2.2 操作设备
14.3 操作硬件
14.3.1 实例:测试用程序
14.3.2 多设备异步通信——select
14.4 VxWorks中的隐含设备
第15章 联通的世界——访问网络
15.1 VxWorks中的网络组件
15.1.1 层次结构
15.1.2 基本组件
15.1.3 实例:配置网络
15.1.4 操作路由表
15.1.5 Zbuf
15.1.6 使用标准I/O访问函数
15.2 实例:网络编程
15.2.1 建立TCP连接
15.2.2 建立UDP连接
15.2.3 使用Zbuf访问TCP
15.2.4 创建及使用FTP
第16章 VxWorks程序设计
16.1 资源
16.1.1 资源的有效利用
16.1.2 资源的保护
16.2 优先级安排
16.3 保证时间特性
第3部分 驱动开发与原理
第17章 硬件资源——操作硬件
17.1 硬件访问
17.1.1 内存访问
17.1.2 通用的内存映射程序
17.1.3 I/O端口访问
17.2 中断
17.2.1 轮询方式
17.2.2 中断
17.2.3 中断号与中断向量
17.2.4 中断复用
17.2.5 中断处理中的问题
17.3 访问特定硬件的API
17.3.1 访问PCI
17.3.2 中断相关的API
第18章 大道至简——字符设备
18.1 字符设备驱动程序
18.1.1 字符设备驱动程序的数据结构
18.1.2 字符设备驱动程序的接口
18.1.3 中断处理
18.1.4 安装驱动程序和创建设备
18.1.5 支持Select功能
18.2 实战字符设备开发
18.2.1 板卡介绍
18.2.2 程序实现
第19章 永久的记忆——块设备
19.1 块设备驱动程序的结构
19.2 块设备驱动程序的接口
19.3 安装块设备驱动程序
第20章 联通的基础——网络设备
20.1 网络设备的数据结构
20.2 网络数据传递
20.3 网络设备接口层
20.3.1 endLoad
20.3.2 endUnload
20.3.3 endSend
20.3.4 endMCastAddrAdd、endMCastAddrGet和endMCastAddrDel
20.3.5 endPollSend、endPollReceive
20.3.6 endStart
20.3.7 endStop
20.3.8 endAddressForm
20.3.9 endAddrGet
20.3.10 endPacketDataGet
20.3.11 endIoctl
20.4 中断模式下接收数据
20.5 网络设备驱动程序的安装
第21章 USB设备——USB .1支持
21.1 USB工作过程
21.2 USB外设端协议栈
21.2.1 USB外设端协议栈结构
21.2.2 USB外设端协议栈实现
21.2.3 USB外设端协议驱动层的使用
21.2.4 USB外设端控制器驱动程序
21.2.5 再看“回调函数”
21.3 USB主机端协议栈
21.3.1 USB主机端协议栈结构
21.3.2 USB主机端协议栈使用
21.3.3 USB主机端驱动程序
第22章 USB设备——USB .0支持
22.1 设备端协议栈
22.2 主机端协议栈
22.2.1 USBD与驱动程序
22.2.2 与已有程序的兼容
第4部分 板级支持包流程与移植
第23章 多样化的主板——板级支持包BSP
23.1 引导过程
23.2 BSP的流程
23.2.1 BSP的作用和结构
23.2.2 BSP初始化硬件
23.3 BSP移植
23.3.1 实现BSP所需要的工作
23.3.2 BSP中的系统接口
23.4 实例:BSP包移植
23.4.1 开始移植BSP前的准备
23.4.2 提供中断控制器接口
23.4.3 提供时钟接口
23.4.4 提供硬件访问接口
23.4.5 提供设备支持——实时钟、GPIO等
23.4.6 提供设备支持——串口
23.4.7 提供设备支持——网络
第24章 珠联璧合——BSP与开发环境的结合
24.1 配置工具与BSP的关系
24.1.1 CDF文件分析
24.1.2 Tornado下通过cdf文件对VxWorks进行配置的过程
24.2 自制BSP配置
24.2.1 实例:增加自定义文件夹结构
24.2.2 创建组件的一般步骤
附录 新的VxWorks
FL.1 新开发环境
FL.1.1 新的界面
FL.1.2 新的开发工具
FL.1.3 开发环境的扩展
FL.1.4 与Tornado的对比
FL.2 新特性
FL.2.1 实时进程RTP
FL.2.2 错误检测与报告
第1章 使用Tornado
1.1 概述
1.2 Tornado的安装目录
1.3 创建一个工程
1.3.1 可加载工程和可引导工程
1.3.2 实例:创建可加载工程
1.3.3 实例:创建可引导工程
1.4 更加有效率地工作
1.4.1 开发环境基本设置
1.4.2 实例:设置一个更熟悉的编辑器
1.4.3 使用Tcl语言定义工具
第2章 编译工程——Builder
2.1 编译工程及Boot Rom
2.1.1 编译工程
2.1.2 编译Boot Rom
2.1.3 实例:制作软盘引导盘
2.1.4 深入1:批处理文件mkboot
2.1.5 深入2:制作U盘引导盘
2.1.6 深入3:制作硬盘引导盘
2.1.7 深入4:制作一个引导ROM
2.1.8 实例:多系统并存
2.2 深入编译环境
2.2.1 创建的过程
2.2.2 抛弃IDE
2.2.3 使用Diab
2.3 了解MakeFile
2.3.1 MakeFile的作用
2.3.2 MakeFile格式
2.3.3 解决MakeFile所导致的错误
第3章 加载——FTP Server
3.1 FTP Server的设置
3.1.1 用户和权限
3.1.2 其他设置
3.1.3 实例:下载一个工程
3.2 从信息看状态
3.2.1 正常下载过程
3.2.2 下载失败的原因
3.3 从其他设备加载操作系统
第4章 管理工程——Work Space
4.1 管理文件
4.1.1 文件的位置
4.1.2 文件依赖关系
4.2 管理组件
4.2.1 VxWorks的各种组件
4.2.2 查找组件并修改属性
4.2.3 裁剪组件
4.3 编译选项
4.3.1 编译规则
4.3.2 宏定义
4.3.3 其他选项
第5章 连接目标机——Target Server
5.1 配置Target Server
5.1.1 基本配置内容
5.1.2 重要配置属性
5.2 实例:通过网络连接目标机
5.3 实例:配置串口连接主机
5.4 连接错误的解决办法
5.4.1 目标文件不正确
5.4.2 网络错误
5.4.3 目标机无响应
5.4.4 Target Server缓冲池不足
5.4.5 网络速度慢
第6章 交叉调试——Debugger
6.1 基本调试过程
6.1.1 运行Debugger
6.1.2 发起任务
6.1.3 连接任务
6.2 断点
6.2.1 设置断点
6.2.2 管理断点
6.3 独特的查看功能
6.3.1 源代码与汇编混合查看
6.3.2 调试命令行
6.3.3 其他功能
6.4 系统级调试设置
第7章 浏览目标机资源——Browser
7.1 Browser所提供的信息
7.1.1 Browser的设置
7.1.2 目标机信息
7.2 实例:透过现象看调试
7.2.1 查看内存泄露
7.2.2 分配任务优先级
7.2.3 确定任务堆栈
7.2.4 查看中断挂接情况
7.2.5 查看任务状况
第8章 与目标机的交互——Shell及其他
8.1 Shell
8.1.1 Shell的常用特性
8.1.2 Shell的快捷操作
8.1.3 Shell的常用命令
8.1.4 Shell的环境变量
8.1.5 执行脚本
8.2 WindView
8.2.1 设置WindView
8.2.2 分析任务时序图
8.3 Triggering
8.3.1 Triggering设置
8.3.2 Triggering的使用
第9章 软件硬件同时开发——VxSim
9.1 集成的VxSim
9.1.1 VxSim适用范围
9.1.2 VxSim的配置
9.1.3 VxSim的中断系统
9.2 功能更强的Full VxSim
9.2.1 Full VxSim所需的网络配置
9.2.2 创建支持网络连接的Full VxSim映像
9.2.3 启动Full VxSim
9.2.4 运行多个Full VxSim
9.3 实例:在VxSim上运行程序
第2部分 内核分析和应用程序开发
第10章 管理任务——任务的状态
10.1 任务概况
10.1.1 任务状态
10.1.2 任务调度
10.1.3 任务优先级
10.2 生成和管理任务
10.2.1 任务控制API
10.2.2 销毁任务
10.2.3 控制任务状态的切换
10.3 深入:任务切换的深层原因
10.3.1 时钟中断和时间片调度
10.3.2 优先级抢占调度机制
10.3.3 任务控制块
第11章 任务间的交互——同步与通信
11.1 任务之间的交流
11.1.1 共享内存
11.1.2 互斥
11.1.3 信号量
11.1.4 消息队列和管道
11.1.5 使用网络的任务间通信
11.1.6 信号
11.2 实例:任务间交流
11.2.1 通过信号量实现互斥
11.2.2 信号量实现同步
11.2.3 管道与消息队列
11.3 其他通信手段
第12章 控制时间——系统计时
12.1 系统时间
12.1.1 系统时间的来源
12.1.2 与现实时间相联系
12.2 系统计时控制
12.3 看门狗计时器
12.3.1 实例1:看门狗计时
12.3.2 实例2:看门狗定时
12.3.3 实例3:看门狗延时
12.4 其他的计时方法
12.4.1 使用CPU时间戳计时
12.4.2 实例:计算CPU频率
第13章 存储信息——访问文件系统
13.1 VxWorks中的文件系统
13.1.1 操作文件的办法
13.1.2 实例:文件操作
13.1.3 深入:打开文件的过程
13.1.4 深入:读取文件的过程
13.1.5 文件系统的作用
13.1.6 文件系统的特殊功能
13.1.7 文件系统的安装流程
13.2 文件系统分析
13.2.1 dosFs
13.2.2 rawFs
13.2.3 cdromFs
13.2.4 tapeFs
13.3 深入:如何提高访问效率
13.4 实例:支持多硬盘分区
第14章 与外界的交互——控制硬件
14.1 驱动程序管理
14.1.1 文件、设备、驱动程序
14.1.2 驱动管理3张表
14.1.3 驱动及设备的管理
14.2 访问硬件的手段
14.2.1 创建设备
14.2.2 操作设备
14.3 操作硬件
14.3.1 实例:测试用程序
14.3.2 多设备异步通信——select
14.4 VxWorks中的隐含设备
第15章 联通的世界——访问网络
15.1 VxWorks中的网络组件
15.1.1 层次结构
15.1.2 基本组件
15.1.3 实例:配置网络
15.1.4 操作路由表
15.1.5 Zbuf
15.1.6 使用标准I/O访问函数
15.2 实例:网络编程
15.2.1 建立TCP连接
15.2.2 建立UDP连接
15.2.3 使用Zbuf访问TCP
15.2.4 创建及使用FTP
第16章 VxWorks程序设计
16.1 资源
16.1.1 资源的有效利用
16.1.2 资源的保护
16.2 优先级安排
16.3 保证时间特性
第3部分 驱动开发与原理
第17章 硬件资源——操作硬件
17.1 硬件访问
17.1.1 内存访问
17.1.2 通用的内存映射程序
17.1.3 I/O端口访问
17.2 中断
17.2.1 轮询方式
17.2.2 中断
17.2.3 中断号与中断向量
17.2.4 中断复用
17.2.5 中断处理中的问题
17.3 访问特定硬件的API
17.3.1 访问PCI
17.3.2 中断相关的API
第18章 大道至简——字符设备
18.1 字符设备驱动程序
18.1.1 字符设备驱动程序的数据结构
18.1.2 字符设备驱动程序的接口
18.1.3 中断处理
18.1.4 安装驱动程序和创建设备
18.1.5 支持Select功能
18.2 实战字符设备开发
18.2.1 板卡介绍
18.2.2 程序实现
第19章 永久的记忆——块设备
19.1 块设备驱动程序的结构
19.2 块设备驱动程序的接口
19.3 安装块设备驱动程序
第20章 联通的基础——网络设备
20.1 网络设备的数据结构
20.2 网络数据传递
20.3 网络设备接口层
20.3.1 endLoad
20.3.2 endUnload
20.3.3 endSend
20.3.4 endMCastAddrAdd、endMCastAddrGet和endMCastAddrDel
20.3.5 endPollSend、endPollReceive
20.3.6 endStart
20.3.7 endStop
20.3.8 endAddressForm
20.3.9 endAddrGet
20.3.10 endPacketDataGet
20.3.11 endIoctl
20.4 中断模式下接收数据
20.5 网络设备驱动程序的安装
第21章 USB设备——USB .1支持
21.1 USB工作过程
21.2 USB外设端协议栈
21.2.1 USB外设端协议栈结构
21.2.2 USB外设端协议栈实现
21.2.3 USB外设端协议驱动层的使用
21.2.4 USB外设端控制器驱动程序
21.2.5 再看“回调函数”
21.3 USB主机端协议栈
21.3.1 USB主机端协议栈结构
21.3.2 USB主机端协议栈使用
21.3.3 USB主机端驱动程序
第22章 USB设备——USB .0支持
22.1 设备端协议栈
22.2 主机端协议栈
22.2.1 USBD与驱动程序
22.2.2 与已有程序的兼容
第4部分 板级支持包流程与移植
第23章 多样化的主板——板级支持包BSP
23.1 引导过程
23.2 BSP的流程
23.2.1 BSP的作用和结构
23.2.2 BSP初始化硬件
23.3 BSP移植
23.3.1 实现BSP所需要的工作
23.3.2 BSP中的系统接口
23.4 实例:BSP包移植
23.4.1 开始移植BSP前的准备
23.4.2 提供中断控制器接口
23.4.3 提供时钟接口
23.4.4 提供硬件访问接口
23.4.5 提供设备支持——实时钟、GPIO等
23.4.6 提供设备支持——串口
23.4.7 提供设备支持——网络
第24章 珠联璧合——BSP与开发环境的结合
24.1 配置工具与BSP的关系
24.1.1 CDF文件分析
24.1.2 Tornado下通过cdf文件对VxWorks进行配置的过程
24.2 自制BSP配置
24.2.1 实例:增加自定义文件夹结构
24.2.2 创建组件的一般步骤
附录 新的VxWorks
FL.1 新开发环境
FL.1.1 新的界面
FL.1.2 新的开发工具
FL.1.3 开发环境的扩展
FL.1.4 与Tornado的对比
FL.2 新特性
FL.2.1 实时进程RTP
FL.2.2 错误检测与报告
猜您喜欢