目 录
第1 章 嵌入式实时操作系统VxWorks 概况 1
1.1 VxWorks 系统特点 1
1.2 VxWorks 操作系统组成 3
1.3 本书组成 7
第2 章 集成开发环境Tornado 2.2.1 8
2.1 Tornado 2.2.1 安装 8
2.1.1 术语与约定 8
2.1.2 安装准备 8
2.1.3 安装步骤 9
2.2 目标机仿真器 40
2.2.1 集成目标机仿真器 40
2.2.2 全功能目标机仿真器 43
2.3 工程管理工具 52
2.3.1 编译Bootloader Image(bootrom) 52
2.3.2 操作系统工程 55
2.3.3 应用程序工程 61
2.4 制作系统启动盘 74
2.4.1 制作系统启动盘一 74
2.4.2 制作系统启动盘二 75
2.4.3 制作系统启动盘三 75
2.5 目标机服务器 76
2.5.1 配置目标机服务器 76
2.5.2 启动目标机服务器 80
2.6 目标机浏览器 80
2.7 Host Shell 82
2.8 WindView 83
2.9 调试器 86嵌入式实时操作系统VxWorks 实战
2.10 FTP 服务器 90
第3 章 实时多任务和任务间通信 93
3.1 实时多任务 93
3.1.1 任务生命周期管理 93
3.1.2 任务状态控制 99
3.1.3 任务调度 101
3.1.4 用户接口 103
3.1.5 任务堆栈示意图 104
3.2 任务间通信 105
3.2.1 共享数据结构 105
3.2.2 互斥和同步 106
3.2.3 信号量 107
3.2.4 消息队列 114
3.2.5 命名管道 117
3.2.6 信号 119
第4 章 实时系统的中断、时钟和定时器 122
4.1 中断 122
4.1.1 中断服务程序 122
4.1.2 中断连接 123
4.1.3 使能中断 125
4.1.4 中断级判断 125
4.1.5 中断级限制 125
4.1.6 中断级异常和任务级异常 125
4.1.7 中断和任务的通信 126
4.2 时钟 126
4.2.1 系统时钟 126
4.2.2 辅助时钟 127
4.2.3 TSC 时钟 129
4.2.4 实时时钟 130
4.3 定时器 130
4.3.1 创建看门狗 131
4.3.2 启动看门狗 131
4.3.3 取消看门狗 131
4.3.4 删除看门狗 132目 录V
第5 章 实时系统的内存管理 133
5.1 内存管理 133
5.1.1 内存申请 133
5.1.2 内存释放 134
5.2 实例化 135
5.2.1 动态实例化 135
5.2.2 静态实例化 135
第6 章 基本I/O 系统 136
6.1 文件和设备 136
6.2 基本I/O 操作 137
6.2.1 文件描述符 137
6.2.2 标准输入、标准输出和标准错误处理137
6.2.3 打开和关闭 138
6.2.4 生成与删除 139
6.2.5 读写操作 139
6.2.6 文件裁剪 140
6.2.7 I/O 控制 140
6.2.8 等待多个文件描述符:select 功能 140
6.3 基于缓存的I/O 操作 141
第7 章 PCI 设备驱动程序开发 142
7.1 自动内存映射 142
7.2 读取设备资源 144
7.3 中断初始化 146
7.4 中断服务程序 146
第8 章 网络与交换技术 147
8.1 VxWorks 5.5.1 网络 147
8.1.1 网络结构 147
8.1.2 FTP 服务器 148
8.1.3 远程登录 149
8.1.4 远程文件 149
8.1.5 网络通信 149
8.2 二层交换技术 176
8.2.1 MAC 地址表 176
8.2.2 ARP 缓存表 176
8.2.3 静默与洪泛 177
8.3 网络安全与防火墙 177
8.3.1 防火墙的设计 178
8.3.2 防火墙的实现 183
8.3.3 防火墙的测试 183
第9 章 实时操作系统VxWorks 5.5.1 定制 186
9.1 目标机BIOS 配置 186
9.2 引导行参数 186
9.2.1 默认引导行参数 186
9.2.2 引导行参数存储 187
9.3 自动映射PCI 设备内存 188
9.4 USB 键盘配置 194
9.5 网络配置 201
9.5.1 自动协商问题 201
9.5.2 网络协议问题 211
9.5.3 网络数据接收延迟问题 226
9.5.4 多网卡和WDB 调试问题 226
9.6 clockLib 缺少互斥锁问题 234
9.7 FPU 浮点协处理器与任务选项VX_FP_TASK 236
9.8 脚本程序执行不成功问题 237
9.9 支持AHCI 设备驱动问题 242
9.9.1 BIOS 配置AHCI 模式 242
9.9.2 AHCI 驱动程序移植 242
9.10 操作系统设备兼容问题 247
9.10.1 网卡顺序映射 247
9.10.2 硬盘名字映射 251
9.11 配置状态显示组件 251
9.11.1 WindView 251
9.11.2 moduleLib 251
9.11.3 loadLib 和unldLib 252
9.11.4 memShow 252
9.11.5 msgQShow 252
9.11.6 semShow 252
9.11.7 pciConfigShow 252
9.11.8 symLib 252
9.11.9 symShow 253
9.11.10 taskShow 253
9.11.11 wdShow 253
9.11.12 netShow 253
9.11.13 ping 253
9.11.14 网络统计信息 253
9.11.15 usrFsLib 254
9.12 实时系统的实时性问题 254
9.12.1 电源管理与调度延时问题 254
9.12.2 SMM 模式与中断丢失问题 254
9.13 基于X86 平台的VxWorks 5.5.1 快速启动实现 254
9.13.1 VxWorks 5.5.1 启动过程分析 254
9.13.2 VxWorks 5.5.1 快速启动实现 256
9.13.3 内核映像快速启动 258
9.13.4 性能测试 259
9.14 参数化配置VxWorks 操作系统的方法 260
第10 章 如何构建一个实时系统 262
10.1 实时系统的实时性问题 262
10.1.1 电源管理与调度延时问题 262
10.1.2 SMM 模式与中断丢失问题 266
10.2 实时系统的调试问题 269
第11 章 实时操作系统VxWorks SMP 274
11.1 Workbench 集成开发环境安装 274
11.1.1 安装准备 274
11.1.2 安装步骤 274
11.2 Workbench 集成开发环境使用 291
11.2.1 开发环境 292
11.2.2 引导行参数默认配置 301
11.2.3 VIP 操作系统内核映像工程 301
11.2.4 启动目标板系统(制作系统启动盘) 304
11.2.5 DKM 可下载内核模块工程 305
11.2.6 DKM 工程下载、运行和调试 307
11.2.7 启动虚拟IO 控制台VIO Console 312
11.2.8 软件逻辑分析仪System Viewer 313
11.3 VxWorks SMP 系统 315
11.3.1 VxWorks SMP 配置说明 319
11.3.2 VxWorks SMP 编程 319
11.3.3 spinlock 互斥/ 同步机制 320
11.3.4 CPU-specific 互斥机制 324
11.3.5 Memory Barrier 325
11.3.6 原子的内存操作(原子操作) 327
11.3.7 CPU Affinity 329
11.3.8 将CPU 预留给使用了CPU Affinity 的任务(CPU 预留机制) 331
11.3.9 CPU 信息及管理 333
11.3.10 调试SMP 代码 335
11.3.11 SMP 性能优化 336
11.3.12 SMP 简单例子 337
11.3.13 向VxWorks SMP 系统移植代码 346
11.4 VxWorks 6.9 系统常见问题 352
11.4.1 VxWorks 6.9 系统网卡配置 352
11.4.2 标准IO 系统重要差异 353
11.4.3 广播回环问题 355
11.4.4 网络通信丢帧 358
11.4.5 设备顺序映射 359
11.4.6 优化系统性能参数 360
11.4.7 目标机服务器与“永恒之蓝”病毒 361
第12 章 软件运行异常分析排查作业指导 362
12.1 系统需求 362
12.1.1 调试机系统需求 362
12.1.2 目标机系统需求 362
12.2 异常分析排查 363
12.2.1 硬件相关异常 363
12.2.2 网络相关异常 364
12.2.3 软件相关异常 368
12.3 规范系统设计 377
12.3.1 网络设计 377
12.3.2 软件设计 377