标题：μC/OS-2标准教程
基本信息
作者:杨宗德 张兵   
·出版社：人民邮电出版社
·页码：272 页
·出版日期：2009年
·ISBN：9787115204424
·条形码：9787115204424
·包装版本：1版
·装帧：平装
·开本：16
·中文：中文
适用对象
《μC/OS-2标准教程》可以作为高等院校学习嵌入式操作系统原理的专业教材，也适合有意从事嵌入式系统开发的工程技术人员阅读。《μC/OS-2标准教程》假定读者有较好的C语言基础和数据结构基础知识，如果读者对ARM处理器有一定的了解，将更容易掌握《μC/OS-2标准教程》内容。
编辑推荐
《μC/OS-2标准教程》特点：逐句分析u（3/OS-II（2．80版本）源代码，详细分析系统原理。以Microsoft vc++环境为平台，配备完整模拟应用案例。以S3C24 10（ARM9）为处理器平台，分析硬件平台相关代码，逐步介绍移植过程。《μC/OS-2标准教程》主要介绍uC/OS-II（2．80版本）内核基本原理（包括任务及任务调度、系统启动与实始化、任务间通信与同步、内存管理），分析源代码及应用案例，并介绍在ARM9内核处理器（S3C：2410）上的移植和uC/TCP-IP协议栈设计方法。完整教学辅助资料，包括PPT、课件及案例源代码，可以从http：//www．ptpress．com．cn/resources．aspx处下载。
图书目录
第1章 μC/OS-II与嵌入式实时操作系统 1
1.1 实时操作系统概述 2
1.1.1 嵌入式系统软件结构 2
1.1.2 实时操作系统内核概述 3
1.1.3 常见实时操作系统简介 4
1.2 μC/OS-II内核源代码文档结构 6
1.2.1 构建μC/OS-II模拟编程环境 6
1.2.2 测试程序源代码说明 8
1.3 μC/OS-II基本概念 9
1.3.1 嵌入式应用程序开发模式 9
1.3.2 可重入函数与不可重入函数 10
1.3.3 μC/OS-II临界状态管理 11
1.4 小结 12
1.5 习题 13
第2章 μC/OS-II任务管理 15
2.1 案例引入：基于mC/OS-II的多任务管理 16
2.1.1 μC/OS-II多任务示例运行结果 16
2.1.2 μC/OS-II多任务代码分析 16
2.2 μC/OS-II任务基本属性 17
2.2.1 C语言可执行代码结构 17
2.2.2 μC/OS-II任务结构 18
2.2.3 μC/OS-II任务栈 19
2.2.4 μC/OS-II任务控制块 21
2.2.5 μC/OS-II任务优先级 26
2.2.6 μC/OS-II任务状态 26
2.2.7 系统任务 28
2.3 μC/OS-II任务管理函数源码分析 32
2.3.1 创建任务 32
2.3.2 初始化任务栈 35
2.3.3 初始化任务控制块 37
2.3.4 扩展创建任务 40
2.3.5 删除任务 42
2.3.6 请求删除任务 45
2.3.7 挂起任务 47
2.3.8 恢复任务 49
2.3.9 设置任务名称 50
2.3.10 获取任务名称 52
2.3.11 读取任务TCB信息 53
2.4 应用实例：多任务管理应用分析 55
2.4.1 基本功能 55
2.4.2 程序实现及源码分析 55
2.5 小结 58
2.6 习题 58
第3章 μC/OS-II任务调度与系统初始化 59
3.1 μC/OS-II任务级任务调度机制 60
3.1.1 μC/OS-II调度算法 60
3.1.2 μC/OS-II任务就绪表 60
3.1.3 获取最高优先级就绪任务 62
3.2 μC/OS-II任务级任务调度 63
3.2.1 任务级任务调度算法分析 63
3.2.2 任务级任务切换OS_TASK_SW() 64
3.2.3 调度器上锁与解锁 66
3.2.4 修改任务优先级 67
3.3 μC/OS-II中断级任务调度 69
3.3.1 μC/OS-II中断管理 69
3.3.2 IRQ中断处理过程及中断级调度 70
3.3.3 OSIntEnter()进入中断管理函数 72
3.3.4 OSIntExit()退出中断管理函数 72
3.3.5 中断级任务调度切换函数OSIntCtxSw() 73
3.3.6 FIQ中断处理过程及中断级调度 74
3.4 任务级任务调度实例 76
3.4.1 程序功能 76
3.4.2 程序实现及源码分析 76
3.5 小结 78
3.6 习题 79
第4章 μC/OS-II系统启动与时钟任务管理 81
4.1 μC/OS-II系统启动过程分析 82
4.1.1 μC/OS-II应用程序开发模式 82
4.1.2 OSInit()函数初始化分析 82
4.1.3 OSStart()函数启动系统分析 87
4.1.4 运行最高优先级任务 87
4.2 时钟任务与时钟管理 88
4.2.1 创建系统时钟任务 88
4.2.2 时钟中断服务程序OSTimeTick() 89
4.2.3 系统时间管理函数源码分析 91
4.3 小结 95
4.4 习题 95
第5章 μC/OS-II任务间通信机制 97
5.1 μC/OS-II事件管理机制 98
5.1.1 事件控制块 98
5.1.2 事件控制块管理 99
5.2 单一消息传递事件：消息邮箱 101
5.2.1 消息邮箱基本原理 101
5.2.2 创建消息邮箱 101
5.2.3 阻塞式读取消息 103
5.2.4 非阻塞式读取消息 106
5.2.5 发送消息到消息邮箱 107
5.2.6 按指定方式发送数据到消息邮箱 110
5.2.7 删除消息邮箱 111
5.2.8 获取消息邮箱基本信息 114
5.2.9 消息邮箱应用实例 115
5.3 多消息传递事件：消息队列 117
5.3.1 消息队列基本原理 117
5.3.2 创建消息队列 119
5.3.3 发送消息到队列尾 121
5.3.4 发送消息到队首 122
5.3.5 按指定方式发送消息 124
5.3.6 阻塞式读取消息 125
5.3.7 非阻塞式读取消息 128
5.3.8 删除消息队列 129
5.3.9 获取消息队列信息 132
5.3.10 清理消息队列空间 133
5.3.11 消息队列应用实例 134
5.4 小结 137
5.5 习题 138
第6章 μC/OS-II任务间单事件同步机制 139
6.1 任务同步机制：信号量 140
6.1.1 信号量基本原理 140
6.1.2 创建信号量 140
6.1.3 阻塞式获取信号量 141
6.1.4 非阻塞式获取信号量 143
6.1.5 释放信号量 144
6.1.6 删除信号量 145
6.1.7 查询信号量信息 147
6.1.8 设置信号量的值 148
6.1.9 信号量实现生产-消费问题应用实例 149
6.2 互斥事件管理机制：互斥锁 153
6.2.1 互斥锁与优先级反转 153
6.2.2 创建互斥锁 156
6.2.3 阻塞式获取互斥锁 158
6.2.4 非阻塞式获取互斥锁 161
6.2.5 释放互斥锁 162
6.2.6 删除互斥锁 164
6.2.7 获取互斥锁基本信息 167
6.3 小结 168
6.4 习题 169
第7章 μC/OS-II多事件同步机制 171
7.1 事件组标志同步机制基本原理 172
7.1.1 事件组标志基本原理 172
7.1.2 初始化事件标志组控制块 174
7.2 事件组标志基本操作 175
7.2.1 创建事件组标志 175
7.2.2 阻塞式等待事件组标志 176
7.2.3 非阻塞式等待事件组标志 182
7.2.4 修改事件组标志状态 184
7.2.5 删除事件标志组 187
7.2.6 获取任务就绪标志 190
7.2.7 查询事件组标志信息 190
7.2.8 获取事件组标志名称 191
7.2.9 设置事件组标志名称 192
7.3 使用事件组标志实现读写锁功能案例 193
7.3.1 案例功能及原理说明 193
7.3.2 程序源代码分析 195
7.4 小结 197
7.5 习题 197
第8章 μC/OS-II内存分区管理 199
8.1 内存分区管理基本原理 200
8.1.1 μC/OS-II内存分区管理机制 200
8.1.2 内存分区控制块数据空间初始化 201
8.2 μC/OS-II内存分区管理操作 202
8.2.1 创建内存分区 202
8.2.2 申请一个内存分区块 204
8.2.3 释放内存分区块 205
8.2.4 查询内存分区基本信息 206
8.2.5 读取/设置内存分区名称 207
8.3 μC/OS-II内存管理应用实例 210
8.3.1 应用程序基本功能 210
8.3.2 应用程序源代码分析 211
8.4 小结 212
8.5 习题 212
第9章 μC/OS-II在S3C2410处理器上的移植案例分析 213
9.1 ARM可执行文件结构分析 214
9.1.1 可执行文件结构分析 214
9.1.2 ADS下可执行文件的编译连接过程分析 215
9.1.3 移植第一步：设置代码存储加载位置 217
9.2 移植第二步：编写系统启动代码 218
9.2.1 开始执行，禁止中断 219
9.2.2 初始化栈空间 219
9.2.3 复制异常代码与异常向量地址 220
9.3 移植第三步：中断处理与时钟中断任务 221
9.3.1 S3C2410中断向量 221
9.3.2 S3C2410中断处理硬件结构 223
9.3.3 移植时对中断的处理 225
9.3.4 示例：μC/OS-II系统时钟中断任务管理 228
9.4 移植第四步：修改与调度相关的汇编代码 229
9.4.1 临界状态问题 229
9.4.2 数据类型问题 230
9.4.3 任务调度问题与钩子函数问题 231
9.5 移植后续工作：添加硬件驱动程序 232
9.5.1 重新写C函数以实现信息从串口输出 232
9.5.2 实现串口驱动程序 234
9.5.3 重写堆栈空间初始化函数 237
9.6 小结 238
9.7 习题 238
第10章 μC/TCP-IP协议栈设计分析 239
10.1 TCP/IP协议栈概述 240
10.1.1 标准TCP/IP协议栈模型 240
10.1.2 BSD面向连接的TCP通信编程过程 241
10.1.3 BSD面向无连接的UDP通信实现 242
10.1.4 轻量级TCP/IP协议栈和标准TCP/IP协议栈比较 242
10.1.5 μC/TCP-IP协议栈介绍及特点 243
10.2 μC/TCP-IP协议栈设计 243
10.2.1 μC/TCP-IP协议栈基本框架 243
10.2.2 进程基本形式 245
10.2.3 接收数据过程 245
10.2.4 发送数据过程 246
10.3 μC/TCP-IP协议栈实现 247
10.3.1 IP协议栈设计及实现 247
10.3.2 TCP协议设计及实现 249
10.3.3 UDP协议设计及实现 252
10.3.4 ICMP协议设计及实现 253
10.3.5 ARP设计及实现 255
10.3.6 缓冲区设计及管理 257
10.4 小结 260
10.5 习题 260
附录 编译程序工具简介 261
A.1 Visual C++ 6.0集成开发环境 261
A.2 ADS集成开发环境 264
A.3 Source Insight源代码查看工具 269