第1章 wind内核 1
1.1 内核概述 1
1.1.1实时内核 1
1.1.2微内核 3
1.1.3任务调度 5
1.2任务属性 8
1.2.1任务控制块(WIND_TCB) 9
1.2.2任务栈 10
1.2.3 出错状态 12
1.2.4钩子函数 14
1.2.5任务状态 16
1.3.1激活内核 18
1.3内核功能接口 18
1.2.6系统任务 18
1.3.2任务创建 19
1.3.3任务控制 23
1.3.4任务结束 27
1.3.5任务重启 28
1.3.6调度控制 31
1.3.7其他辅助函数 32
1.4多任务与函数重入 32
第2章 任务间通信 36
2.1 概述 36
2.2共享内存 37
2.3信号量 37
2.3.1概述 37
2.3.3互斥信号量 42
2.3.2二进制信号量 42
2.3.4计数信号量 45
2.3.5共享内存信号量 46
2.4消息队列 46
2.4.1概述 46
2.4.2普通消息队列 51
2.4.3共享内存消息队列 53
2.4.4信号量和消息队列实验 53
2.5管道 58
2.5.1概述 58
2.5.2使用管道 60
2.5.3管道I/O控制 62
2.5.4管道示例 63
2.6信号 67
2.7 socket 70
第3章 POSlX编程 71
3.1 POSIX标准简介 71
3.2时钟和定时器 72
3.2.1 概述 72
3.2.2 时钟 75
3.2.3定时器 75
3.2.4看门狗 78
3.2.5示例 79
3.3内存锁定 83
3.4线程 83
3.4.1线程创建 85
3.4.2动态库初始化 88
3.4.3线程私有数据 90
3.4.4线程互斥与同步 94
3.4.5线程结束 102
3.4.6线程撤销 105
3.5任务调度 109
3.5.1概述 109
3.5.2调度策略 110
3.5.3调度实现 112
3.6信号量 116
3.6.1概述 116
3.6.2初始化信号量 118
3.6.3信号量基本操作 120
3.6.4删除信号量 121
3.7消息队列 122
3.7.1概述 122
3.7.2打开消息队列 126
3.7.3传递消息 127
3.7.4消息到达通知 129
3.7.5消息队列示例 131
第4章 信号 136
4.1信号概述 136
4.2信号处理函数 140
4.3 BSD信号接口 141
4.4 POSIX信号接口 143
4.4.1 阻塞信号集 144
4.4.2信号处理函数 145
4.4.3同步处理 146
4.5 POSIX1003.1b扩展信号接口 148
4.5.1扩展信号处理函数 148
4.5.2发送队列信号 150
4.5.3队列信号处理 151
4.6信号的影响 153
4.6.1系统调用中断 153
4.6.2函数重入影响 155
第5章 I/O系统 156
5.1 I/O系统概述 156
5.1.1 IO系统层次结构 156
5.1.2文件、设备和驱动程序 157
5.2基本I/O 159
5.2.1标准I/O 160
5.2.2打开和关闭 162
5.2.3 创建和删除 163
5.2.4读写 164
5.2.5文件截平 165
5.2.6 I/O控制 166
5.3 I/O复用(Select) 166
5.4其他I/O 170
5.4.1缓冲I/O(ansiStdio) 170
5.4.2格式化I/O(fioLib) 172
5.4.3消息记录(IogLib) 173
5.5异步I/O(AIO) 175
5.5.1 AIO控制块 176
5.5.2 AIO函数 177
5.5.3用AIO的实例 182
5.6常用的VxWorks设备 189
5.6.1 串行终端设备 189
5.6.2伪内存设备 190
5.6.3 NFS设备 195
5.6.4非NFS网络文件系统设备(netDrv设备) 197
5.6.5 RAM盘 198
5.7 I/O系统内部结构 201
5.7.1驱动程序 202
5.7.2设备 204
5.7.3文件描述符 206
5.7.4块设备驱动 209
5.8 串口tty设备 212
5.8.1 串口的层次 212
5.8.2串口初始化过程 213
5.8.3创建tty设备 213
5.8.5控制tty 216
5.8.4 tty输入输出 216
5.9编写SCC驱动 219
5.9.1 tty数据结构 220
5.9.2 xxDrv数据结构 223
5.9.3 xxDrv程序结构 225
5.9.4查询支持 236
第6章 文件系统 239
6.1文件系统概述 239
6.2 CBIO 239
6.2.1基本CBIO 240
6.2.2 CBIO磁盘缓存 241
6.2.3 CBIO卷设备 243
6.2.4 ioctl 247
6.3.1卷结构 248
6.3 dosFs文件系统 248
6.3.2使用dosFs 250
6.3.3挂装与卸载 255
6.3.4文件和目录 255
6.3.5 ioctl 259
6.3.6连续文件 262
6.4 rawFs文件系统 262
第7章 VxWorks网络整体分析 265
7.1概述 265
7.1.1TCP/IP协议简介 265
7.1.2 VxWorks网络栈 266
7.2网络数据流分析 269
7.2.1网络存储组织 269
7.2.2数据组织 271
7.2.3接收:从驱动程序到应用程序的数据流 273
7.2.4发送:从应用程序到驱动程序的数据流 274
7.2.5查看函数 275
7.3远程访问服务 276
7.3.1远程登录rlogin和TELNET 276
7.3.2 NFS服务器 277
7.3.3 FTP服务器 277
7.3.4 NFS客户端 278
7.3.5 FTP客户和RSH 278
7.3.6TFTP客户端 278
第8章 网络应用编程 281
8.1 socket概述 281
8.2网络程序设计的特殊之处 283
8.3 socket通信属性 285
8.4.1数据结构表示 287
8.4 socket端点地址 287
8.4.2协议端口号 289
8.4.3地址操作函数 289
8.5 socket应用框架 290
8.6面向连接的socket应用 292
8.6.1创建socket 292
8.6.2绑定端点地址 294
8.6.3建立连接 295
8.6.4在连接的socket上发送和接收 301
8.6.5关闭连接 303
8.6.6面向连接的socket示例 304
8.7无连接的socket应用 309
8.7.1 sendto和recvfrom 309
8.7.2无连接的socket示例 311
8.7.3无连接socket和connect 315
8.7.4多播的实现 317
8.7.4广播的实现 323
8.8裸层socket 326
8.8.1 报文格式 327
8.8.2发送和接收 331
8.8.3示例:Traceroute 333
8.9 socket应用高级话题 340
8.9.1 I/O控制 340
8.9.2 socket选项 340
8.9.3 I/O复用 347
8.9.4超越I/O复用限制 349
8.9.5深入底层处理 352
9.1.1 MUX和协议层接口 354
9.1 网络驱动层次结构 354
第9章 网络驱动(END) 354
9.1.2 END驱动和MUX接口 356
9.2装载END驱动 357
第10章 BSP概述 360
10.1 BSP功能 360
10.2 BSP标准规范 361
10.3 BSP组织结构 362
10.4 BSP支持主机/目标系统交叉开发环境 363
10.5 BSP允许将应用系统移植到其他体系下 364
10.6模板和参考 365
10.7设备驱动开发中需要考虑的问题 365
第11章 VxWorks映像 368
11.1符号表 368
11.2目标模块格式(OMF) 369
11.3映像类型 370
11.3.1 BSP引导映像 372
11.3.2 VxWorks系统映像 375
第12章 VxWorks启动过程 377
12.1 目的、策略与过程概述 377
12.2引导阶段 379
12.2.1 romInit() 380
12.2.2 romStart() 382
12.2.3 sysInit() 386
12.3准备激活内核 387
12.3.1 usrInit() 387
12.3.2 sysHwInit() 388
12.4激活内核kernelInit 394
12.5根任务:tUsrRoot 395