第1章 范例 1
1.0 安装μC/OS-Ⅱ 1
1.1 INCLUDES.H 3
1.2 与编译器无关的数据类型 3
1.3 全局变量 4
1.4 OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL() 6
1.5 基于PC的服务 6
1.6 应用μC/OS-Ⅱ的范例 8
1.7 例1 10
1.8 例2 15
1.9 例3 22
第2章 实时系统概念 29
2.0 前后台系统(Foreground/Background System) 29
2.1 代码的临界区 30
2.2 资源 30
2.3 共享资源 31
2.4 多任务 31
2.5 任务 31
2.6 任务切换 33
2.7 内核(Kernel) 33
2.8 调度(Scheduler) 34
2.9 非占先式内核 34
2.10 占先式内核 35
2.11 可重入性(Reentrancy) 36
2.12 时间片轮番调度法 38
2.13 任务优先级 38
2.14 静态优先级 38
2.15 动态优先级 39
2.16 优先级反转 39
2.17 任务优先级分配 41
2.18 互斥条件 43
2.19 死锁(或抱死)(Deadlock(or Deadly Embrace)) 50
2.20 同步 51
2.21 事件标志(Event Flag) 53
2.22 任务间的通信 53
2.23 消息邮箱 54
2.24 消息队列(Message Queue) 55
2.25 中断 56
2.26 中断延迟 57
2.27 中断响应 57
2.28 中断恢复时间(Interrupt Recovery) 58
2.29 中断延迟、响应和恢复 59
2.30 中断处理时间 59
2.31 非屏蔽中断(NMI) 60
2.32 时钟节拍(Clock Tick) 63
2.33 对存储器的需求 65
2.34 使用实时内核的优缺点 66
2.35 实时系统小结 66
第3章 内核结构 68
3.0 临界区(Critical Section) 68
3.1 任务 69
3.2 任务状态 70
3.3 任务控制块(Task Control Blocks,OS_TCB) 72
3.4 就绪表(Ready List) 75
3.5 任务调度(Task Scheduling) 78
3.6 给调度器上锁和开锁(Locking and UnLocking the Scheduler) 80
3.7 空闲任务(Idle Task) 81
3.8 统计任务 82
3.9 μC/OS中的中断处理 86
3.10 时钟节拍 90
3.11 μC/OS-Ⅱ初始化 93
3.12 μC/OS-Ⅱ的启动 95
3.13 获取当前μC/OS-Ⅱ的版本号 97
3.14 OSEvent???()函数 98
第4章 任务管理 99
4.0 建立任务,OSTaskCreate() 100
4.1 建立任务,OSTaskCreateExt() 104
4.2 任务堆栈 108
4.3 堆栈检验,OSTaskStkChk() 110
4.4 删除任务,OSTaskDel() 113
4.5 请求删除任务,OSTaskDelReq() 116
4.6 改变任务的优先级,OSTaskChangePrio() 119
4.7 挂起任务,OSTaskSuspend() 122
4.8 恢复任务,OSTaskResume() 124
4.9 获得有关任务的信息,OSTaskQuery() 125
第5章 时间管理 127
5.0 任务延时函数,OSTimeDly() 127
5.1 按时分秒延时函数OSTimeDlyHMSM() 129
5.2 让处在延时期的任务结束延时,OSTimeDlyResume() 131
5.2 系统时间,OSTimeGet()和OSTimeSet() 132
第6章 任务之间的通信与同步 134
6.0 事件控制块ECB 135
6.1 初始化一个事件控制块,OSEventWaitListlnit() 139
6.2 使一个任务进入就绪态,OSEventTaskRdy() 139
6.3 使一个任务进入等待某事件发生状态,OSEventTaskWait() 141
6.4 由于等待超时而将任务置为就绪态,OSEventTO() 142
6.5 信号量 143
6.6 邮箱 150
6.7 消息队列 158
第7章 内存管理 174
7.0 内存控制块 175
7.1 建立一个内存分区,OSMemCreate() 176
7.2 分配一个内存块,OSMemGet() 179
7.3 释放一个内存块,OSMemPut() 180
7.4 查询一个内存分区的状态,OSMemQuery() 181
7.5 使用内存分区 182
7.6 等待一个内存块 184
第8章 移植μC/OS-Ⅱ 186
8.0 开发工具 187
8.1 目录和文件 188
8.2 INCLUDES.H 189
8.3 OS_CPU.H 189
8.4 OS_CPU_A.ASM 193
8.5 OS_CPU_C.C 198
第9章 μC/OS-Ⅱ在80x86上的移植 207
9.0 开发工具 209
9.1 目录和文件 209
9.2 INCLUDES.H文件 209
9.3 OS_CPU.H文件 210
9.4 OS_CPU_A.ASM 214
9.5 OS_CPU_C.C 224
9.6 内存占用 228
9.7 运行时间 231
第10章 从μC/OS升级到μC/OS-Ⅱ 242
10.0 目录和文件 242
10.1 INCLUDES.H 243
10.2 OS_CPU.H 243
10.3 OS_CPU_A.ASM 246
10.4 OS_CPU_C.C 248
10.5 总结 253
第11章 参考手册 255
第12章 配置手册 315
附录A 源代码范例 322
A.0 例1 322
A.1 例2 327
A.2 例3 337
A.3 PC服务 350
附录B μC/OS-Ⅱ与处理器类型无关的源代码 362
B.0 uCOS_Ⅱ.C 362
B.1 uCOS_Ⅱ.H 363
B.2 OS_CORE.C 374
B.3 OS_MBOX.C 393
B.4 OS_MEM.C 398
B.5 OS_Q.C 403
B.6 OS_SEM.C 413
B.7 OS_TASK.C 419
B.8 OS_TIME.C 435
附录C 80x86源代码在实模式、大模式下编译 440
C.0 OS_CPU_A.ASM 440
C.1 OS_CPU_C.C 447
C.2 OS_CPU.H 450
附录D HPLISTC和TO 453
D.0 HPLISTC 453
D.1 TO 454
附录E 参考文献 456
附录F 使用许可证(License)和μCOS-Ⅱ网站 458