第1章 示例代码 1
1.1 安装嵌入式系统构件 1
1.2 每一章是如何组织的 2
1.3 INCLUDES.H 2
1.4 与编译器无关的数据类型 3
1.5 CFG.C和CFG.H 3
1.6 全局变量 4
1.7 OS_ENTER_CRITICAL()和OS_EXIT_CRITICALL() 5
1.8 ESBB示例代码 6
1.8.1 main() 9
1.8.2 TestStatTask() 10
1.8.3 TestClkTask() 16
1.8.4 TestTmrTask(() 18
1.8.5 TestDIOTask() 19
1.8.6 TestAIOTask() 21
1.8.7 TestTxTask()和TestRxTask() 22
参考书目 23
第2章 实时系统概念 49
2.1 前台/后台系统 49
2.4 共享资源 50
2.3 资源 50
2.2 代码的关键部分 50
2.5 多任务处理 51
2.6 任务 51
2.7 环境转换(或者任务切换) 52
2.8 内核 52
2.9 调度程序 53
2.10 非占先内核 53
2.11 占先内核 54
2.12 重入 55
2.16 动态的优先级 57
2.17 优先级的倒置 57
2.14 任务优先级 57
2.15 静态的优先级 57
2.13 循环调度 57
2.18 分配任务优先级 60
2.19 互斥 61
2.19.1 禁止和启动中断 61
2.19.2 测试与设置 62
2.19.3 禁止和启动调度程序 63
2.19.4 信号量 63
2.21 同步 68
2.20 死锁(或者致命包含) 68
2.22 事件标记 70
2.23 任务间的通信 71
2.24 消息信箱 71
2.25 消息队列 72
2.26 中断 73
2.27 中断等待时间 73
2.28 中断响应时间 73
2.29 中断恢复时间 74
2.30 中断等待时间、响应时间和恢复时间 75
2.32 非屏蔽中断 76
2.31 ISR的处理时间 76
2.33 时钟脉冲 78
2.34 内存需求 80
2.35 实时内核的优点和缺点 81
2.36 实时系统小结 82
参考书目 82
第3章 键盘 84
3.1 键盘基本知识 84
3.2 矩阵键盘扫描算法 86
3.3 矩阵键盘模块 87
3.4 内部结构 88
3.5 接口函数 90
3.6 配置 94
3.7 怎样使用矩阵键盘模块 94
参考书目 98
第4章 多路复用LED显示器 109
4.1 LED显示器 109
4.2 多路复用LED显示模块 111
4.3 内部结构 112
4.4 接口函数 114
4.5 配置 118
4.6 怎样使用多路复用LED显示模块 119
参考书目 120
第5章 字符LCD模块 130
5.1 液晶显示器 130
5.2 字符LCD模块 131
5.3 字符LCD模块内部结构 133
5.4 接口函数 135
5.5 LCD模块显示、配置 142
5.6 LCD模块制造商 143
6.1 时钟/日历 153
第6章 钟点 153
6.3 内部结构 154
6.2 时钟/日历模块 154
6.4 接口函数 157
6.5 时钟/日历模块配置 164
参考书目 164
第7章 计时器管理器 180
7.1 计时器管理器模块 180
7.2 计时器管理器模块内部结构 180
7.3 计时器管理器模块接口函数 183
参考书目 190
7.4 计时器管理器模块配置 190
第8章 离散输入/输出 199
8.1 离散输入 200
8.2 离散输出 203
8.3 离散输入/输出模块 205
8.4 离散输入/输出模块内部结构 206
8.5 离散输入/输出模块接口函数 209
8.6 配置 220
8.7 怎样使用离散输入/输出模块 221
9.1 定点数 241
第9章 定点数学 241
9.2 定点加法和减法 245
9.3 定点乘法 245
9.4 定点除法 246
9.5 定点比较 246
9.6 使用定点算术,例1 246
9.7 使用定点算术,例2 248
9.8 使用定点算术,例3 249
9.9 结论 249
参考书目 250
10.1 模拟输入 251
第10章 模拟输入/输出 251
10.2 读取ADC 253
10.2.1 读取ADC的方法1 254
10.2.2 读取ADC的方法2 254
10.2.3 读取ADC的方法3 256
10.2.4 读取ADC的综合方法 258
10.3 温度测量示例 258
10.4 模拟输出 262
10.5 温度显示示例 263
10.7 内部结构 266
10.6 模拟输入/输出模块 266
10.8 接口函数 270
10.9 模拟输入/输出模块的配置 281
10.10 怎样使用模拟输入/输出模块 282
10.10.1 怎样使用模拟输入/输出模块,AI#0 284
10.10.2 怎样使用模拟输入/输出模块,AI#1 285
10.10.3 怎样使用模拟输入/输出模块,AI#2 285
10.10.4 怎样使用模拟输入/输出模块,AI#3 286
10.10.5 怎样使用模拟输入/输出模块,AI#4 286
10.10.6 怎样使用模拟输入/输出模块,AI#5 287
10.10.9 怎样使用模拟输入/输出模块,AO#2 288
10.10.7 怎样使用模拟输入/输出模块,AO#0 288
10.10.8 怎样使用模拟输入/输出模块,AO#1 288
参考书目 289
第11章 异步串行通信 304
11.1 异步通信 305
11.2 RS-232C 307
11.3 RS-485 311
11.4 收发数据 314
11.4.1 接收效据 314
11.4.2 数据传输 318
11.5 PC机上的串行端口 321
11.6 低层PC串行I/O模块(COMM-PC) 323
11.7 缓冲串行I/O模块(COMMBCND) 330
11.8 缓冲串行I/O模块(COMMRTOS) 336
11.9 配置 342
11.10 如何使用COMM-PC和COMMBGND模块 343
11.11 如何使用COMM-PC和COMMRTOS模块 344
参考书目 345
12.1 基于字符的显示 376
第12章 PC服务 376
12.2 保存和恢复DOS环境 379
12.3 占用时间测量 380
12.4 多样性 380
12.5 接口函数 381
参考书目 393
附录A μC/OS-II实时内核 405
附录B 编程约定 431
附录C 缩略词、缩写词和助记符词典 445
附录D HPLISTC和TO 452
附录E CD-ROM指南 455