目录 1
第1章 Wind River 1
1.1 风河系统公司简介 1
1.2 实时操作系统VxWorks简介 1
1.3 Wind River的产品系列 3
1.4 Wind River Platform系列 7
1.5 Wind River产的成功范例 10
1.6 Wind River服务支持途径 11
第2章 Tornado 13
2.1 初识环境 13
2.1.1 安装 13
2.1.2 目录与文件 15
2.1.3 帮助文档 15
2.2 基本结构 17
2.3 工程管理 19
2.3.1 工程创建 21
2.3.2 源文件引用 23
2.3.3 组件配置 24
2.4 编译器 27
2.4.1 编译配置 27
2.4.2 Makefile规则 30
2.4.3 库使用 31
2.4.4 命令行编译 31
2.5 调试器 32
2.5.1 图形界面 33
2.5.2 命令行 35
2.5.3 目标模块调试 35
2.6 WindSh 36
2.6.2 WindSh特点 37
2.6.1 WindSh结构 37
2.6.3 WindSh内部命令 39
2.6.4 解释器TCL 42
2.7 辅助调试工具 42
2.7.1 Browser 42
2.7.2 VxSim 45
2.8 Target Server 46
2.8.1 配置和启动 46
2.8.2 虚拟IO 50
2.8.3 TSFS 52
2.8.4 Tornado Registry 52
2.9 辅助小工具 53
2.10 常见问题解答 55
第3章 VxWorks 58
3.1 初识系统 58
3.1.2 VxWorks组件介绍 59
3.1.1 VxWorks特性 59
3.1.3 主机上VxWorks相关目录和文件 60
3.1.4 VxWorks库模块 62
3.1.5 VxWorks与其他RTOS的比较 62
3.2 VxWorks与目标机 63
3.3 VxWorks与主机 63
3.4 符号表 65
3.4.1 symLib和symlib 66
3.4.2 符号表初始化 67
3.4.3 符号表同步 69
3.4.4 错误状态 71
3.5 Linker和Loader 73
3.5.1 静态连接 73
3.5.2 动态加载 74
3.5.3 loadLib与loadlib 75
3.5.4 目标模块管理 76
3.5.5 加载方式 77
3.5.6 模块卸载 85
3.6 目标机Shell 86
3.6.1 tShell创建 86
3.6.2 tShell使用 87
3.6.3 tShell辅助调试 90
3.6.4 脚本支持 91
3.6.5 tShell与wShell的区别 92
3.6.6 Console和虚拟Console 93
3.6.7 usrLib和usrFsLib 93
3.6.8 最终产品tShell问题 95
3.6.9 用户定制Shell 96
3.7 其他组件 99
3.7.2 数据结构组件 100
3.7.1 ANSI C库 100
3.7.3 复位支持库 101
3.7.4 可选组件 101
3.8 常见问题解答 102
第4章 多任务环境 107
4.1 任务概念 107
4.1.1 任务控制块 107
4.1.2 任务变量 108
4.1.3 环境变量 109
4.1.4 任务栈 110
4.1.5 任务选项 110
4.1.6 任务状态 110
4.1.7 任务调度 111
4.1.8 任务函数库 114
4.1.9 任务功能扩展 114
4.2 中断处理 115
4.1.10 系统任务 115
4.2.1 中断封装 116
4.2.2 系统时钟 117
4.2.3 辅助时钟 119
4.2.4 代码限制 119
4.2.5 中断通知 119
4.2.6 用户中断 120
4.3 异常处理 120
4.3.1 异常处理库 121
4.3.2 异常信号 122
4.4 线程间通信 122
4.4.1 共享数据结构 122
4.4.2 信号量 123
4.4.3 消息队列 126
4.5 常见问题解答 127
5.1 基本概念 130
第5章 内存管理 130
5.2 VxWorks中的内存布局 131
5.2.1 BootRom运行时的内 132
存布局 132
5.2.2 VxWorks运行时的内 133
存布局 133
5.3 内存分配算法 134
5.4 VxWorks中内存操作API 136
函数 136
5.5 Flash存储器 139
5.6 内存管理单元和VxVMI 141
5.6.1 虚拟内存 141
5.6.2 基本MMU的支持 142
5.6.3 VxVMI 143
5.7.3 Cache的工作过程 145
5.7.2 Cache的操作 145
5.7.1 Cache的结构 145
5.7 高速缓存[Cache] 145
5.8 NVRAM 146
5.9 内存的检验 147
5.9.1 利用内存读写验证内存 147
5.9.2 利用d和memShow命令查看内存 147
5.9.3 使用Browser查看内存 148
5.10 常见问题解答 150
第6章 I/O系统 155
6.1 概述 155
6.1.1 系统结构 155
6.1.2 文件 156
6.1.3 文件描述符 156
6.1.4 标准文件描述符 156
6.2.1 基本I/O 157
6.2 I/O接口 157
6.2.2 带缓存I/O 158
6.2.3 格式I/O 159
6.3 I/O内部管理 160
6.3.1 系统启动 160
6.3.2 I/O系统初始化 161
6.3.3 驱动程序初始化 161
6.3.4 创建设备 162
6.3.5 设备的访问 163
6.4 VxWorks的设备和驱动 167
6.4.1 串行I/O设备 168
6.4.2 管道设备 169
6.4.3 伪内存设备 169
6.5 串口驱动 169
6.5.1 ttyDrv和tyLib 171
6.5.2 xxDrv 172
6.5.3 加载流程 174
6.6 常见问题解答 175
第7章 文件系统 177
7.1 系统结构 177
7.1.1 应用接口 178
7.1.2 IO系统 182
7.1.3 CBIO 183
7.2 本机文件系统 187
7.2.1 dosFs 187
7.2.2 其他 190
7.3 块设备 191
7.3.1 概述 191
7.3.2 ramDrv 193
7.3.3 软盘 194
7.3.4 硬盘 195
7.3.5 TureFFS 195
7.3.6 memDrv 200
7.4 常见问题解答 201
第8章 网络通信 202
8.1 概述 202
8.2 网络驱动 203
8.2.1 网络驱动加载配置 204
8.2.2 增加第二块网卡 206
8.2.3 添加新的网卡驱动程序 208
8.3 Socket程序设计 208
8.3.1 概念的引入 209
8.3.2 客户/服务器模式 210
8.3.3 Socket函数 213
8.3.4 服务器程序结构 226
8.4 网络服务 227
8.4.1 FTP服务器 228
8.5 常见问题解答 229
8.4.2 Telnet服务器 229
第9章 建立开发环境 233
9.1 主机和目标机 233
9.2 板级支持包[BSP] 235
9.3 系统启动 239
9.4 程序映像 241
9.4.1 映像类型 242
9.4.2 映像格式 244
9.4.3 映像组织 248
9.5 BootRom建立 249
9.5.1 BSP定制 249
9.5.2 选择BootRom的启动方式 252
9.5.3 选择VxWorks的加载方式 254
9.5.4 BootRom建立 256
9.5.5 BootRom运行 257
9.6.2 主机环境 258
9.6.1 目标系统 258
9.6 MFC5272 BootRom实例 258
9.6.3 设计目标 262
9.6.4 编辑 263
9.6.5 编译 270
9.6.6 调试 270
9.6.7 发布 271
9.7 PC104/486 BootRom实例 271
9.7.1 目标系统 271
9.7.2 主机环境 272
9.7.3 设计目标 272
9.7.4 编辑 272
9.7.5 编译 279
9.7.6 调试 279
9.7.7 发布 279
9.8.1 调试方式 280
9.8 建立开发环境 280
9.8.2 Hello World 281
9.9 常见问题解答 283
第10章 程序开发实践 285
10.1 Tornado扩展 285
10.1.1 工程组织 285
10.1.2 Tornado API 285
10.1.3 CDF组件定制 287
10.1.4 编辑器 291
10.1.5 版本控制 293
10.1.6 静态检查 297
10.1.7 代码文档 297
10.1.8 UML 298
10.1.9 其他功能扩展 300
10.2.1 多任务调试 302
10.2 调试实践 302
10.2.2 Shell调试功能 305
10.2.3 WindView调试 307
10.3 编程实践 312
10.3.1 OSAL的VxWorks实现实例 312
10.3.2 通用通信层实现实例 323
10.4 移植实践 336
10.4.1 多操作系统移植 337
10.4.2 升级到Tornado 2.2 338
10.4.3 goAhead移植实例 339
10.5 常见问题解答 341
附录 参考资源 343
A.1 参考文献 343
A.2 基础书籍 344
A.3 网络资源 345