第1章 eCos操作系统概述 1
1.1 嵌入式实时操作系统简介 1
1.1.1 嵌入式实时操作系统发展现状与未来 1
1.1.2 VxWorks 2
1.1.3 OSEK/VDX 4
1.1.4 ucosⅡ 5
1.2 eCos操作系统历史、现状及前景 6
1.2.1 eCos操作系统的历史 6
1.2.2 eCos操作系统的现状 8
1.2.3 eCos操作系统的未来 8
1.3 eCos特性 8
1.3.1 可配置性 8
1.3.2 开源特性 10
1.3.3 功能特性 11
1.4.1 eCos模拟环境 12
1.4 eCos相关资源 12
1.4.2 eCos交叉开发工具 13
1.4.3 eCos源代码 14
1.4.4 eCos讨论组及邮件列表 14
第2章 eCos开发环境 16
2.1 cygwin环境 16
2.1.2 为什么要建立cygwin环境 17
2.1.3 cygwin环境的建立 17
2.1.1 交叉开发环境 17
2.2 eCos源码 20
2.2.1 eCos源码的安装 20
2.2.2 eCos源码的体系 21
2.3 交叉开发工具的安装 21
2.4 建立X86平台下的eCos开发环境 23
2.4.1 环境变量的设定 23
2.4.2 运行eCos开发环境 24
3.1.2 线程与进程 28
3.1.1 线程概念的由来 28
第3章 线程与调度 28
3.1 线程 28
3.1.3 eCos线程类继承 30
3.1.4 eCos线程实现 31
3.1.5 线程相关C API 38
3.2 调度 46
3.2.1 调度策略 46
3.2.2 优先级反转及防止 48
3.2.3 调度器的实现 50
3.2.4 调度相关C API 56
第4章 异常与中断 57
4.1 异常 57
4.1.1 异常机制实现 57
4.1.2 HAL及内核异常处理 61
4.1.3 应用程序异常处理 64
4.2 中断 65
4.2.1 中断处理流程 66
4.2.2 中断机制的实现 67
4.2.3 中断API 72
第5章 定时与同步机制 77
5.1 定时机制 77
5.1.1 Counter 77
5.1.2 Alarm 80
5.1.3 Clock 84
5.1.4 Timer 89
5.2 同步机制 90
5.2.1 Mutex 90
5.2.2 Condition variables 96
5.2.3 Semaphore 99
5.2.4 Mailbox 102
5.2.5 Message queue 110
5.2.6 Event flags 114
5.2.7 Spinlock 120
第6章 可配置机制及实现 124
6.1 可配置性简述 124
6.1.1 可配置性概念 124
6.1.2 可配置性需求 124
6.1.3 可配置性实现方式 124
6.2 eCos可配置机制实现 125
6.2.1 组件管理部分 125
6.2.2 组件部分 127
6.3 CDL简介 145
6.3.1 CDL命令 145
6.3.2 CDL属性 146
6.3.3 表达式与取值 149
7.1.1 硬件抽象层功能 150
第7章 硬件抽象层与虚拟向量 150
7.1 硬件抽象层 150
7.1.2 硬件抽象层实现 151
7.2 虚拟向量 158
7.2.1 虚拟向量的实现 159
7.2.2 虚拟向量配置选项 166
第8章 RedBoot 167
8.1 RedBoot功能概述 167
8.1.1 BootLoader简介 167
8.1.2 RedBoot功能概述 168
8.1.3 RedBoot的启动过程 169
8.2 RedBoot编译与开发 171
8.2.1 RedBoot的文件结构 171
8.2.2 RedBoot的安装和配置 172
8.3.1 人机接口 176
8.3.2 RedBoot命令处理过程 176
8.3 RedBoot的用户接口 176
8.4 GDB stub在RedBoot中的应用 179
8.4.1 RedBoot内建GDB的工作原理 179
8.4.2 RedBoot中GDB stub的初始化 180
8.4.3 RedBoot中GDB stub的执行过程 180
8.5 RedBoot命令集 183
8.5.1 RedBoot命令格式 183
8.5.2 RedBoot命令集 184
第9章 GNUPro工具链的编译与应用 197
9.1 GNUPro工具链的编译 197
9.1.1 工具链源码准备 197
9.1.2 工具链的编译 198
9.1.3 常见问题 199
9.2 GCC应用 199
9.3.1 GDB简介 202
9.3.2 GDB通信协议 202
9.3 GDB应用 202
9.3.3 GDB的使用方法 208
9.4 Insight应用 211
第10章 eCos移植 214
10.1 eCos移植简介 214
10.2 平台抽象层的移植 215
10.2.1 添加目标平台martini到configtools中 217
10.2.2 根据新的硬件平台创建RedBoot工程 219
10.2.3 为目标平台自定义包 220
10.2.4 调整内存布局 222
10.2.5 根据新硬件平台修改代码 223
10.2.6 编译RedBoot 225
10.3 eCos移植总结 225
附录A The eCos liCense version 2.0 227
附录B GCC选项 228
附录C GDB使用指南 237
参考文献 249