第1章 嵌入式实时操作系统μC/OS-Ⅲ概述 1
1.1 μC/OS-Ⅲ发展历程 1
1.2 μC/OS-Ⅲ特点 3
1.3 μC/OS-Ⅲ应用领域 9
1.4 μC/OS-Ⅲ系统组成 10
1.4.1 μC/OS-Ⅲ配置文件 12
1.4.2 μC/OS-Ⅲ内核文件 19
1.5 μC/OS-Ⅲ自定义数据类型 28
1.6 本章小结 31
第2章 Cortex-M3内核体系 32
2.1 Cortex-M3内核架构 33
2.2 Cortex-M3存储器配置 35
2.3 Cortex-M3工作模式与异常 37
2.3.1 异常向量表 38
2.3.2 PendSV异常 41
2.3.3 SysTick定时器 43
2.3.4 NVIC中断配置 44
2.4 Cortex-M3寄存器 46
2.4.1 内核寄存器 47
2.4.2 内存映射寄存器 50
2.5 Cortex-M3汇编语言 53
2.5.1 Keil MDK汇编语言程序实例 53
2.5.2 IAR EW ARM汇编语言程序实例 64
2.5.3 汇编语言指令集 79
2.6 本章小结 80
第3章 IAR KSK LPC1788开发板与LPC1788微控制器 81
3.1 IAR KSK LPC1788开发板 82
3.1.1 电源与复位电路 83
3.1.2 按键电路 84
3.1.3 ADC输入电路 84
3.1.4 LCD显示模块控制电路 85
3.1.5 JTAG电路 87
3.1.6 串口通信电路 87
3.1.7 音频电路 89
3.1.8 SDRAM电路 90
3.2 LPC1788微控制器 92
3.2.1 映射存储空间 92
3.2.2 外扩SDRAM 92
3.2.3 中断 94
3.2.4 系统节拍定时器 98
3.2.5 时钟 99
3.2.6 串口? 103
3.2.7 模/数转换器 104
3.2.8 LPC1788引脚配置 106
3.3 本章小结 106
第4章 IAR EW ARM软件和应用程序框架 108
4.1 EW ARM软件与C语言应用程序框架 108
4.1.1 C语言数据类型 109
4.1.2 EW ARM开发环境和实例一 111
4.1.3 实例一工程源码 116
4.1.4 串口?接收中断与实例二 122
4.2 μC/OS-Ⅲ应用程序框架 127
4.2.1 实例三 127
4.2.2 实例三运行结果 135
4.3 关于Bootloader 136
4.4 本章小结 137
第5章 μC/OS-Ⅲ移植 138
5.1 μC/OS-Ⅲ系统移植文件 138
5.1.1 OS_CPU.H文件 138
5.1.2 OS_CPU_A.S文件 140
5.1.3 OS_CPU_C.C文件 143
5.2 μC/CPU移植文件 150
5.2.1 CPU_DEF.H文件 151
5.2.2 CPU_CFG.H文件 151
5.2.3 CPU_CORE.H和CPU_CORE.C文件 153
5.2.4 CPU.H文件 153
5.2.5 CPU C.C和CPU A.ASM文件 157
5.3 μC/LIB文件 158
5.4 μC/OS-Ⅲ配置文件 164
5.4.1 OS_CFG.H文件 164
5.4.2 OS_APP_HOOKS.H和OS_APP_HOOKS.C文件 168
5.4.3 OS_CFG_APP.H文件 169
5.5 μC/CSP文件 171
5.6 μC/BSP文件 177
5.7 本章小结 178
第6章 μC/OS-Ⅲ用户任务 179
6.1 APP/CPU文件 179
6.2 APP/BSP文件 183
6.3 用户任务 185
6.3.1 任务堆栈与优先级 187
6.3.2 任务控制块 188
6.3.3 任务工作状态 192
6.3.4 用户任务创建过程 194
6.3.5 APP文件 195
6.4 多任务工程实例 199
6.4.1 实例一 199
6.4.2 实例一工作原理 204
6.5 延时函数 206
6.6 本章小结 208
第7章 μC/OS-Ⅲ系统任务 209
7.1 空闲任务 210
7.2 系统节拍任务 212
7.3 统计任务 215
7.3.1 统计任务工作实例 216
7.3.2 统计任务工作原理 218
7.4 定时器任务 223
7.4.1 定时器任务工作原理 223
7.4.2 定时器函数 228
7.4.3 系统定时器工作实例 230
7.5 中断服务手柄任务 235
7.6 用户钩子函数 238
7.7 本章小结 240
第8章 信号量、任务信号量和互斥信号量 241
8.1 信号量 241
8.1.1 信号量函数 241
8.1.2 信号量工作方式 243
8.1.3 任务间信号量同步 244
8.1.4 定时器释放信号量 253
8.1.5 中断释放信号量 257
8.2 任务信号量 265
8.2.1 任务信号量函数 265
8.2.2 任务信号量工作方式 266
8.2.3 任务间任务信号量同步 267
8.2.4 定时器释放任务信号量 271
8.2.5 中断释放任务信号量 273
8.3 互斥信号量 276
8.3.1 互斥信号量函数 276
8.3.2 互斥信号量工作方式 278
8.3.3 互斥信号量实例 278
8.4 本章小结 283
第9章 消息队列和任务消息队列 285
9.1 消息队列 285
9.1.1 消息队列函数 285
9.1.2 消息队列工作方式 288
9.1.3 消息队列工作实例 290
9.2 任务消息队列 298
9.2.1 任务消息队列函数 298
9.2.2 任务消息队列工作方式 299
9.2.3 任务消息队列工作实例 300
9.3 本章小结 305
第10章 事件标志组 306
10.1 事件标志组函数 307
10.2 事件标志组工作方式 308
10.3 事件标志组应用实例 311
10.4 本章小结 319
第11章 多事件请求 320
11.1 多事件请求函数 320
11.2 多事件请求工作方式 322
11.3 多事件请求实例 323
11.4 本章小结 332
第12章 存储管理 333
12.1 存储管理函数 333
12.2 存储管理工作方式 334
12.3 存储管理实例 335
12.4 本章小结 339
第13章 LCD显示原理与面向任务程序设计实例 340
13.1 LCD屏显示原理 340
13.1.1 LCD屏工作方式 341
13.1.2 SDRAM驱动 342
13.2 ADC工作原理 345
13.2.1 ADC工作方式 345
13.2.2 触摸屏工作原理 347
13.3 面向任务程序设计方法 349
13.4 应用程序实例 351
13.4.1 任务组织结构 352
13.4.2 实例代码与注解 354
13.5 本章小结 390
第14章 Keil MDK程序设计方法 392
14.1 Keil MDK工程构建 392
14.1.1 工程文件结构 393
14.1.2 工程选项配置 397
14.2 仿真与调试 400
14.3 本章小结 401
附录 启动文件startup_LPC177x_8x.s 403
参考文献 412