第1篇 Windows CE嵌入式开发入门篇 2
第1章 绪论 2
1.1 嵌入式操作系统概述 2
1.1.1 嵌入式操作系统特性 2
1.1.2 嵌入式操作系统的分类 2
1.1.3 嵌入式操作系统的特点 3
1.2 Windows CE操作系统 3
1.2.1 Windows CE操作系统的发展历史 3
1.2.2 Windows CE操作系统的主要特性 4
1.3 Windows CE开发综述 5
1.3.1 Windows CE开发概述 5
1.3.2 Windows CE开发工具 5
1.3.3 Windows CE开发流程 7
1.4 思考与练习 8
第2章 ARM基础开发 9
2.1 什么是ARM 9
2.1.1 ARM公司介绍 9
2.1.2 ARM的商业模式 10
2.2 ARM处理器介绍 10
2.2.1 ARM处理器系列 10
2.2.2 ARM处理器的应用领域 13
2.2.3 ARM处理器的特点 14
2.2.4 ARM开发工具 15
2.3 思考与练习 18
第2篇 Windows CE应用开发篇 20
第3章 开发工具EVC的使用 20
3.1 EVC特性介绍 20
3.1.1 可视化编程概念 20
3.1.2 EVC支持的开发特性 21
3.2 安装EVC 21
3.2.1 安装主程序 21
3.2.2 安装升级补丁包 22
3.3 平台模拟器介绍 22
3.3.1 模拟器的概念与特点 22
3.3.2 模拟器与硬件开发板的区别 22
3.3.3 建立与使用模拟器 24
3.4 使用辅助开发工具 26
3.4.1 远程连接的意义 26
3.4.2 建立远程连接 26
3.4.3 辅助开发工具的介绍与使用 26
3.5 思考与练习 28
第4章 Windows CE窗口和消息机制 29
4.1 Windows程序设计综述 29
4.1.1 Windows CE程序与桌面Windows程序的联系 29
4.1.2 窗口的机制 29
4.1.3 创建第一个Windows CE下的应用程序 30
4.2 Windows编程基础 34
4.2.1 源代码初步分析 34
4.2.2 大写字母标识符 41
4.2.3 新的数据形态 42
4.2.4 匈牙利命名法 42
4.2.5 句柄的意义 43
4.2.6 回调函数 43
4.3 消息机制 44
4.3.1 注册与建立窗口 44
4.3.2 息循环 47
4.3.3 窗口消息处理 49
4.3.4 队列化消息与非队列化消息 52
4.4 思考与练习 52
第5章 Windows CE资源与控件编程 53
5.1 Windows CE中的窗口编程 53
5.1.1 创建和移动窗口 53
5.1.2 管理窗口 54
5.1.3 子类化窗口 56
5.2 Windows CE中的控件编程 57
5.2.1 控件的基本概念 57
5.2.2 按钮控件 58
5.2.3 编辑框控件 60
5.2.4 列表框控件 60
5.2.5 组合框控件 60
5.2.6 静态控件 61
5.2.7 编程演示各控件的使用 61
5.3 思考与练习 85
第6章 文本与屏幕绘图 86
6.1 文本操作 86
6.1.1 屏幕绘制原理 86
6.1.2 使用设备环境 87
6.1.3 输出文本 87
6.1.4 设置设备环境的属性 88
6.1.5 使用Windows CE中的字体 93
6.1.6 编程实现枚举系统中的字体 96
6.2 绘图操作 102
6.2.1 位图概念 102
6.2.2 使用设备相关位图 102
6.2.3 使用设备无关位图 102
6.2.4 绘制位图 104
6.2.5 绘制直线 106
6.2.6 使用画笔设置线条颜色 106
6.2.7 绘制图形 107
6.2.8 屏幕绘图综合实例 109
6.3 思考与练习 115
第7章 多线程编程 116
7.1 Windows CE的下的多任务体系 116
7.1.1 进程与线程 116
7.1.2 线程并行运行与优先级 117
7.2 多线程的使用 118
7.2.1 创建线程 118
7.2.2 线程间同步 119
7.2.3 使用事件对象 119
7.2.4 使用互斥体对象 120
7.2.5 使用信号对象 121
7.2.6 使用临界区对象 121
7.2.7 事件变量编程实例 121
7.2.8 关闭和退出线程 124
7.3 思考与练习 124
第8章 文件操作与通信编程 125
8.1 文件操作 125
8.1.1 打开和读取文件 125
8.1.2 关闭文件 127
8.1.3 获得文件时间 128
8.1.4 获得文件大小 129
8.1.5 获得文件属性 130
8.1.6 文件的写操作 132
8.1.7 文件系统管理 133
8.2 串行通信 135
8.2.1 串行通信标准 135
8.2.2 打开和关闭串行端口 136
8.2.3 读写串行端口 136
8.2.4 配置串行端口 137
8.2.5 异步多线程通信 139
8.2.6 串口通信示例 139
8.3 思考与练习 151
第9章 数据库与注册表操作 152
9.1 属性数据库 152
9.1.1 Windows CE中的数据库介绍 152
9.1.2 创建和装载数据库卷 153
9.1.3 卸载一个卷 154
9.1.4 写入数据库卷 154
9.1.5 列举已装载的数据卷 155
9.1.6 创建属性数据库 155
9.1.7 打开和关闭数据库 156
9.1.8 读写数据库记录 159
9.1.9 搜索数据库记录 160
9.1.10 删除属性、记录和数据库 161
9.2 注册表 163
9.2.1 添加和更新注册表键和键值 163
9.2.2 读取注册表键值 165
9.2.3 删除键值和键 167
9.2.4 枚举键值 168
9.3 思考与练习 170
第3篇 Windows CE系统定制与驱动开发篇 172
第10章 Windows CE系统定制 172
10.1 开发工具Platform Builder 172
10.1.1 Platform Builder的功能与特性 172
10.1.2 安装Platform Builder 174
10.1.3 Platform Builder的目录结构 175
10.1.4 Platform Builder各目录的功能 175
10.2 基于开发板的系统定制与下载 177
10.2.1 BSP的意义 177
10.2.2 BSP的体系结构 177
10.2.3 导入BSP 178
10.2.4 创建和编译系统工程 179
10.3 思考与练习 183
第11章 Windows CE内核机制 184
11.1 操作系统体系结构 184
11.1.1 进程和线程 184
11.1.2 Windows CE中的存储管理 184
11.1.3 对象存储区与程序存储区 185
11.1.4 Windows CE中的虚拟内存管理 185
11.1.5 使用分页内存 186
11.1.6 使用堆栈 186
11.2 操作系统的启动与运行 187
11.2.1 操作系统的构成 187
11.2.2 系统启动流程 188
11.3 思考与练习 189
第12章 Windows CE底层开发 190
12.1 BootLoader 190
12.1.1 BootLoader的功能 190
12.1.2 BootLoader工作流程 190
12.1.3 烧录Nboot 191
12.1.4 烧录eboot 194
12.1.5 通过BootLoader下载操作系统映像 194
12.2 OAL层开发 200
12.2.1 OAL层的功能 200
12.2.2 中断服务程序 201
12.2.3 中断服务线程 210
12.3 思考与练习 211
第13章 Windows CE下的驱动开发 212
13.1 Windows CE驱动开发综述 212
13.1.1 驱动的基本概念 212
13.1.2 驱动开发工具 213
13.1.3 分层驱动与单层驱动 214
13.2 流接口驱动的开发 214
13.2.1 流接口驱动介绍 214
13.2.2 流接口驱动的工作原理 215
13.2.3 编写基于流接口的字符驱动程序 217
13.2.4 流接口驱动程序与应用程序的交互 223
13.3 触摸屏驱动的开发 226
13.3.1 触摸屏驱动介绍 226
13.3.2 触摸屏驱动的结构 226
13.4 思考与练习 228
第14章 注册表存储与系统休眠唤醒 229
14.1 注册表存储 229
14.1.1 为设备选择注册表 230
14.1.2 基于RAM的注册表 230
14.1.3 基于Hive的注册表 233
14.1.4 如何使用基于Hive的注册表 234
14.1.5 基于Hive的注册表来保存注册表数据 235
14.2 系统休眠与唤醒 236
14.2.1 电源管理 236
14.2.2 解析系统休眠流程 237
14.2.3 解析系统唤醒流程 242
14.3 思考与练习 249
第15章 Windows CE下的调试连接 250
15.1 Platform Manager平台管理器 250
15.1.1 平台管理器介绍 250
15.1.2 应用程序关联 250
15.2 连接通道的选择 251
15.2.1 ActiveSync连接通道 251
15.2.2 KITL连接通道 251
15.2.3 TCP/IP连接通道 253
15.3 初始服务器的选择 253
15.3.1 同步连接初始服务器 254
15.3.2 CESH初始服务器 254
15.3.3 模拟器初始服务器 254
15.3.4 手动初始服务器 254
15.4 内核调试 254
15.4.1 内核调试的概念与意义 254
15.4.2 将内核调试特性加入到系统中 255
15.5 思考与练习 258