免费下载说明: 网络资源,整理仅供学习参考!VxWorks高级程序设计
内容简介 #
全书深入而系统地讲解了VxWorks高级程序设计的重点和难点,尤其对POSIX编程、I/O系统、网络应用编程等作了详细的介绍,并给出了众多的实用编程技巧。同时,本书对于VxWorks中出现的新技术及其优秀特性也作了详细的介绍。
本书共12章,内容包括wind内核、任务间通信、POSIX编程、信号、I/O系统、文件系统、VxWorks网络整体分析、网络应用编程、网络驱动(END)、BSP概述、VxWorks映像、VxWorks启动过程等知识。本书内容详实、实例丰富、可读性强,是VxWorks中、高级开发人员的一本不可多得的参考书籍。
第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.2.6系统任务 18
1.3内核功能接口 18
1.3.1激活内核 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.2二进制信号量 42
2.3.3互斥信号量 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.7socket 70
第3章POSIX编程 71
3.1POSIX标准简介 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.3BSD信号接口 141
4.4POSIX信号接口 143
4.4.1阻塞信号集 144
4.4.2信号处理函数 145
4.4.3同步处理 146
4.5POSIX1003.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.1I/O系统概述 156
5.1.1I/O系统层次结构 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.6I/O控制 166
5.3I/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.1AIO控制块 176
5.5.2AIO函数 177
5.5.3用AIO的实例 182
5.6常用的VxWorks设备 189
5.6.1串行终端设备 189
5.6.2伪内存设备 190
5.6.3NFS设备 195
5.6.4非NFS网络文件系统设备(netDrv设备) 197
5.6.5RAM盘 198
5.7I/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.4tty输入输出 216
5.8.5控制tty 216
5.9编写SCC驱动 219
5.9.1tty数据结构 220
5.9.2xxDrv数据结构 223
5.9.3xxDrv程序结构 225
5.9.4查询支持 236
第6章文件系统 239
6.1文件系统概述 239
6.2CBIO 239
6.2.1基本CBIO 240
6.2.2CBIO磁盘缓存 241
6.2.3CBIO卷设备 243
6.2.4ioctl 247
6.3dosFs文件系统 248
6.3.1卷结构 248
6.3.2使用dosFs 250
6.3.3挂装与卸载 255
6.3.4文件和目录 255
6.3.5ioctl 259
6.3.6连续文件 262
6.4rawFs文件系统 262
第7章VxWorks网络整体分析 265
7.1概述 265
7.1.1TCP/IP协议简介 265
7.1.2VxWorks网络栈 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.2NFS服务器 277
7.3.3FTP服务器 277
7.3.4NFS客户端 278
7.3.5FTP客户和RSH 278
7.3.6TFTP客户端 278
第8章网络应用编程 281
8.1socket概述 281
8.2网络程序设计的特殊之处 283
8.3socket通信属性 285
8.4socket端点地址 287
8.4.1数据结构表示 287
8.4.2协议端口号 289
8.4.3地址操作函数 289
8.5socket应用框架 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.1sendto和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.9socket应用高级话题 340
8.9.1I/O控制 340
8.9.2socket选项 340
8.9.3I/O复用 347
8.9.4超越I/O复用限制 349
8.9.5深入底层处理 352
第9章网络驱动(END) 354
9.1网络驱动层次结构 354
9.1.1MUX和协议层接口 354
9.1.2END驱动和MUX接口 356
9.2装载END驱动 357
第10章BSP概述 360
10.1BSP功能 360
10.2BSP标准规范 361
10.3BSP组织结构 362
10.4BSP支持主机/目标系统交叉开发环境 363
10.5BSP允许将应用系统移植到其他体系下 364
10.6模板和参考 365
10.7设备驱动开发中需要考虑的问题 365
第11章VxWorks映像 368
11.1符号表 368
11.2目标模块格式(OMF) 369
11.3映像类型 370
11.3.1BSP引导映像 372
11.3.2VxWorks系统映像 375
第12章VxWorks启动过程 377
12.1目的、策略与过程概述 377
12.2引导阶段 379
12.2.1romInit() 380
12.2.2romStart() 382
12.2.3sysInit() 386
12.3准备激活内核 387
12.3.1usrInit() 387
12.3.2sysHwInit() 388
12.4激活内核kernelInit 394
12.5根任务:tUsrRoot 395