《μC/OS-2标準教程》是2009年人民邮电出版社出版的图书,作者是杨宗德、张兵。
该书还通过具体实例介绍μC/OS-II系统在以ARM 9为核心的嵌入式处理器S3C2410上的移植方法,最后对轻量级TCP/IP协定栈——μC/TCP-IP协定栈进行了概要介绍。
基本介绍
- 书名:μC/OS-2标準教程
- 作者:杨宗德、张兵
- ISBN:9787115204424
- 页数:272页
- 定价:32.70
- 出版社:人民邮电出版社
- 出版时间:2009年
- 装帧:平装
- 开本:16开
内容简介
《μC/OS-2标準教程》主要介绍μC/OS-II(2.80版本)实时作业系统,包括核心分析及其在ARM 9核心处理器(S3C2410)上的移植方法。核心方面主要包括μC/OS-II操作任务管理、任务级任务调度和中断级任务调度、系统启动与初始化、时钟任务管理、任务间通信机制、任务间单事件和多事件同步机制、记忆体管理方式。
《μ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协定栈设计方法。
图书目录
第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