目录 1
第0章 嵌入式环境的选择 1
0.1 简介 1
0.2 关于微处理器 4
0.3 关于OS 5
0.4 关于功能模块的移植 6
0.5 关于本书 7
第1章 OS内核概念 9
1.1 嵌入式实时内核相关概念 9
1.1.1 ARM7主要特性 9
1.1.2 ARM特性代码 12
1.1.3 中断与设备 15
1.1.4 任务与调度 18
1.1.5 临界区与保护 20
1.2 内核结构 25
1.2.1 硬保护泛滥问题 25
1.2.2 硬保护泛滥问题的解决 26
1.2.3 μRtos V1.0 28
1.3 关键机制 29
1.3.1 复位引导机制 29
1.3.2 单层中断机制 32
1.3.3 嵌套中断机制 33
1.3.4 端口轮询机制 36
1.3.5 不可屏蔽中断机制 38
1.3.6 自保护软件FIFO 39
1.3.7 高速处理需求综合讨论 46
1.3.8 其他杂项 48
1.4 关键算法逻辑 50
1.4.1 硬保护算法 50
1.4.2 调度器算法 52
1.4.3 任务就绪算法 57
1.4.4 软保护算法 61
1.4.5 ITC算法 62
1.4.6 OS_TCB结构 63
1.4.7 OS_EVENT结构 65
第2章 μC/OS-Ⅱ移植过程 72
2.1 头文件定义 72
2.1.1 ARM微处理器定义 73
2.1.2 S3C44B0微处理器定义 74
2.1.3 LPC2214微处理器定义 78
2.1.4 产品板定义 82
2.2 移植代码实现 84
2.2.1 入口代码 84
2.2.2 C运行环境代码 100
2.2.3 环境切换代码 102
第3章 代码组织及功能设计 104
3.1 代码组件化技术 104
3.1.1 普通组件化 105
3.1.2 抽象组件化 112
3.2 设备驱动框架设计 120
3.2.1 ISR层设备驱动框架设计 120
3.2.2 高层设备驱动框架 139
3.3 ITC算法设计 140
3.3.1 软保护问题 147
3.3.2 ITC与任务关系 154
3.3.3 信号灯 161
3.3.4 事件 164
3.3.5 队列 166
3.4 时间片轮换调度算法 181
3.5 模块间衔接接口 182
3.5.1 套接字 185
3.5.2 管道 188
3.5.3 通用接口 191
3.6 状态机组件设计 192
3.6.1 状态机基础 193
3.6.2 层次化状态机特性 196
3.6.3 状态机组件设计 200
3.6.4 状态机组件的使用 203
3.7 杂项设计考虑 204
3.7.1 任务局部存储 204
3.7.2 循环等待死锁检查工具设计 205
3.7.3 内存管理设计 207
第4章 μRtos V1.0代码说明 220
4.1 移植目录 220
4.2 项目目录 222
4.3 内核主目录 222
4.4 功能目录 223
4.5 在μRtos下开发应用产品的说明 224
4.6 常用设备驱动设计指南 226
4.6.1 人机交互串口/PPP 226
4.6.2 键盘 226
4.6.3 网口 227
4.7 网络协议栈设计 230
4.7.1 网络开发接口设计 230
4.7.2 TCP协议 231
4.7.3 TCP协议的简化实现 232
4.7.4 TCP协议实现的其他问题 234
第5章 ARM开发环境 236
5.1 环境的准备 236
5.2 ARMulator 239
5.2.1 中断控制器 240
5.2.2 时钟 241
5.2.3 看门狗 242
5.2.4 调试输出口 243
5.2.5 堆栈跟踪器 243
5.3 编译器工作环境 243
5.3.1 汇编语言编译选项 244
5.3.2 C语言编译选项 246
5.3.3 链接器选项 246
5.4 代码烧写 249
第6章 软件工程简述 250
6.1 软件测试基本概念 250
6.2 软件工程模型 252
6.3 状态机的测试 256