第一篇 Windows CE基础 3
第1章 Windows Embedded概述 3
1.1智能设备与微软嵌入式系统 3
1.2 Windows Embedded概述 4
1.3深入了解Windows Embedded 7
1.3.1 Windows Embedded Standard 8
1.3.2 Windows Embedded for Point of Service 8
1.3.3 Windows Embedded Enterprise 9
1.3.4 Windows Embedded NavReady 9
1.4 Windows CE 10
1.4.1 Windows CE的设计目标 10
1.4.2 Windows CE的特征 12
1.4.3 Windows CE的版本 14
1.5 Windows CE与Windows XP Embedded 16
1.6 Windows CE与Windows Mobile 18
1.7 Windows CE与Windows Automotive 19
1.8 Windows CE的源代码共享 19
本章小结 21
第2章 深入理解Windows CE 22
2.1系统架构 22
2.1.1硬件层 23
2.1.2 OEM层 23
2.1.3操作系统层 23
2.1.4应用层 25
2.2文件系统 26
2.2.1对象存储 27
2.2.2文件系统 28
2.2.3数据库 30
2.2.4注册表 31
2.2.5文件管理器 32
2.3内存管理 33
2.3.1 ROM和RAM 33
2.3.2虚拟内存模型 34
2.3.3虚拟地址映射 35
2.3.4用户地址空间 38
2.4系统调度 39
2.4.1模块 40
2.4.2进程 41
2.4.3线程 43
2.4.4纤程 47
2.4.5同步对象 48
本章小结 54
第3章 Windows CE开发平台的构建与配置 55
3.1开发工作站——目标设备平台 55
3.1.1 Geode X86目标设备平台 55
3.1.2 Samsung S3C2410/Intel xScale目标设备平台 55
3.1.3 Pocket PC应用程序目标设备平台 57
3.2操作系统开发平台 57
3.2.1 Platform Builder简介 57
3.2.2 Platform Builder的安装与配置 59
3.3应用程序开发平台 63
3.3.1 eMbedded Visual C++简介 63
3.3.2 eMbedded Visual C++4.0的安装与配置 64
3.3.3 Visual Studio.NET 2003简介 69
3.3.4 Visual Studio.NET 2003的安装与配置 70
3.3.5 Pocket PC应用程序开发平台的安装与配置 73
3.3.6 Smartphone应用程序开发平台的安装与配置 76
3.4 Windows CE嵌入式系统开发 78
3.4.1快速平台开发 78
3.4.2并行开发 80
3.4.3典型开发周期 80
3.4.4平台移植 81
3.4.5递归开发过程 81
本章小结 82
第二篇 Windows CE操作系统开发 87
第4章 Windows CE操作系统创建 87
4.1创建一个操作系统映像设计 87
4.1.1创建操作系统平台设计 87
4.1.2添加必要的特征 91
4.1.3创建基于模拟器的操作系统映像 93
4.1.4模拟器目标平台的映像下载和调试 95
4.1.5创建Geode目标平台操作系统映像 99
4.1.6 Geode目标平台的映像下载和调试 100
4.2 Platform Builder的目录结构 102
4.2.1 Platform Builder的安装目录 103
4.2.2 WINCE500目录 103
4.3环境变量 107
4.3.1什么是环境变量 107
4.3.2查看环境变量 108
4.3.3设置环境变量 110
4.4 Windows CE映像的创建过程 111
4.4.1系统编译 111
4.4.2系统产生 112
4.4.3 Release复制 113
4.4.4映像创建 113
4.5使用IDE创建操作系统映像 114
4.5.1集成开发环境 114
4.5.2 Catalog窗口 114
4.5 3 Workspace 120
4.5 4 Build OS命令 123
4.6命令行工具 123
4.6.1 Build.exe 125
4.6.2 Sysgen.bat 127
4.6.3 Buildrel.bat 127
4.6.4 Makimg.exe 127
4.6.5 Wince.bat 127
4.6.6 Blddemo.bat 128
4.6.7 Cebuild.bat 129
4.6.8使用命令行工具创建运行时OS映像 129
4.7映像配置文件 129
4.7.1 BIB文件 130
4.7.2 REG文件 133
4.7.3 DAT文件 135
4.7.4 DB文件 136
4.8组件定义及应用 137
4.8.1 CEC文件 137
4.8.2 CEC编辑器 140
4.8.3添加组件定义到Catalog 141
本章小结 142
第5章 Windows CE操作系统映像调试 143
5.1内核调试器 143
5.2断点 144
5.3远程调试工具 146
5.3.1设置平台管理器 146
5.3.2 Remote Call Profiler 148
5.3.3 Remote File Viewer 150
5.3.4 Remote Performance Monitor 151
5.3.5 Remote Registry Editor 152
5.3 6 Remote Kernel Tracker 152
5.3 7 Remote Process Viewer 154
5.3 8 Remote System Information 155
5.3.9 Remote Zoom-in 155
5.3.10 Remote Heap Walker 155
5.3.11 Remote Spy 156
5.4 IDE调试命令 157
5.4.1 Run Programs 157
5.4.2 CE Debug Zones 157
5.4.3 CE Target Control 162
5.4.4 CE Processes 163
5.4.5 CE Threads 163
5.4.6 CE Modules and Symbols 164
5.4.7 CE Exceptions 164
5.5其他调试技术 165
5.5.1逻辑分析仪 165
5.5.2调试LED 166
5.5.3 JTAG 166
本章小结 167
第三篇 Windows CE BSP开发 171
第6章 Windows CE的Bootloader 171
6.1什么是Bootloader 171
6.1.1 PC与嵌入式系统的引导过程 171
6.1.2 Bootloader的概念 172
6.2操作系统的引导模式 172
6.2.1 Bootloader引导模式 172
6.2.2非Bootloader引导模式 173
6.3特殊的Bootloader 174
6.3 1 X86 BIOS Bootloader 174
6.3 2 X86 Serial Bootloader 176
6.3.3 X86 ROM Bootloader 176
6.4引导选项 177
6.4.1 Bootloader通信 177
6.4.2 Bootloader的功能菜单 178
6.4.3 Bootloader的典型特征 178
6.5 Bootloader的控制流程 180
6.5.1 Bootloader的架构 180
6.5.2 Bootloader的组件 181
6.5.3 Bootloader的控制流程 182
6.6 Bootloader开发中的几个关键技术 186
6.6.1 Bootloader的开发调试方法 186
6.6.2 Bootloader的BIB文件 187
6.6.3 Bootloader的启动参数与全局缓冲区 192
6.6.4 Bootloader对Flash存储器的支持 196
本章小结 202
第7章 Windows CE的OAL 203
7.1 OAL与PQOAL 203
7.1.1 OAL与PQOAL的概念 203
7.1.2 PQOAL的目录结构 204
7.1.3 PQOAL的配置文件 205
7.1.4 PQOAL的架构 206
7.1.5 PQOAL的组件 207
7.2 Windows CE操作系统的启动顺序 208
7.3 OAL开发概览 210
7.3.1必要的OAL功能 211
7.3.2可选的OAL功能 234
7.4 OAL的电源管理 245
7.4.1电源管理器 245
7.4.2系统电源状态到设备电源状态的映射 246
7.4.3电源状态间的切换 247
7.4.4挂起状态的GWES控制 248
7.4 5 OAL中的电源管理函数 249
7.5 OAL的开发流程与实践 249
7.5.1创建OAL文件夹 250
7.5.2实现OAL的Startup函数 250
7.5.3创建sources和makefile文件 250
7.5.4编译Startup源文件 251
7.5.5创建Kemel文件夹 251
7.5.6创建CPU特定的OAL函数的框架 251
7.5.7创建必要的OAL函数的框架 252
7.5.8创建OAL电源管理函数的框架 252
7.5.9创建OAL中断处理函数的框架 252
7.5.10创建OAL实时时钟函数的框架 252
7.5.11创建OEMIoControl函数的框架 253
7.5.12创建OEMAddressTable 253
7.5.13创建内核可执行映像 254
7.5.14实现OEMCacheRangeFlush函数 254
7.5.15 创建内核配置文件 255
7.5.16创建Cesysgen文件夹 255
7.5.17创建Dirs文件 255
7.5.18创建Nk.bin映像 255
7.5.19实现串口调试函数 255
7.5.20再次创建Nk.bin映像 256
7.5.21实现OEMInit函数 256
7.5.22实现中断相关的函数 256
7.5.23实现电源管理函数 259
7.5.24三次创建Nk.bin映像 266
7.5.25为OEMInit添加KITL初始化代码 266
7.5.26为运行时映像添加目标控制Shell 266
7.5.27四次创建Nk.bin映像 266
7.5.28实现RTC函数 266
7.5.29定制内存的用法 266
7.5.30实现OEMIoControl函数 267
7.6创建OAL和内核 267
本章小结 268
第8章 Windows CE的驱动程序 270
8.1驱动程序的分类 270
8.1.1驱动程序的概念 270
8.1.2内建的驱动程序与可安装的驱动程序 270
8.1.3分层的驱动程序与不分层的驱动程序 271
8.1.4本地驱动程序与流接口驱动程序 272
8.2驱动程序源代码 274
8.3设备管理器 274
8.4驱动程序的资源 275
8.4.1资源管理器 275
8.4.2设备驱动的中断处理和IST模型 276
8.4.3设备驱动程序的内存管理 281
8.5驱动程序的加载机制 286
8.5.1驱动程序的加载过程 286
8.5.2 ActivateDeviceEx 287
8.5.3总线枚举器 287
8.6总线驱动 290
8.6.1 Bus Agnostic驱动 291
8.6.2 PCI总线驱动 293
8.6.3 PC Card总线驱动 295
8.7流接口设备驱动 296
8.7.1流接口设备驱动的架构 296
8.7.2流接口驱动的实现 296
8.7.3流接口函数 297
8.8驱动程序的电源管理 302
8.8.1电源管理的架构 302
8.8.2电源状态 303
8.8.3电源管理接口 304
8.8.4在驱动程序中添加电源管理 305
8.9 CEDDK 306
8.9.1地址映射函数 306
8.9.2总线访问函数 307
8.9.3 DMA函数 307
8.9.4 I/O操作函数 308
8.10驱动程序实例分析 308
8.10.1源代码分析工具 309
8.10.2 ES1371声卡的驱动程序架构 309
8.10.3 ES1371声卡驱动程序分析 310
8.10.4 ES1371声卡驱动程序注册表设置 317
8.10.5 ES1371声卡驱动程序的sources文件 318
8.11 USB设备驱动程序 319
8.11.1 USB系统的架构 319
8.11.2 USB设备驱动程序的结构 321
8.11.3 USB设备驱动程序分析 322
8.12 USB设备驱动程序开发实例 331
8.12.1获取USB设备信息 332
8.12.2创建一个操作系统设计平台 332
8.12.3创建驱动程序框架 333
8.12.4编写驱动程序代码 336
本章小结 358
第四篇 Windows CE应用程序开发 361
第9章 定制Windows CE Shell 361
9.1可定制的Windows CE Shell 361
9.1.1什么是Shell 361
9.1.2 Shell模块和组件 361
9.2 Windows CE提供的Shell选项 362
9.2.1命令行Shell 363
9.2.2标准Shell 363
9.2.3 Windows瘦客户端Shell 364
9.2.4任务管理器例Shell 366
9.3 Shell定制开发的选项 367
9.3.1应用程序作为Shell 367
9.3.2浏览器作为Shell 367
9.4必要的Shell功能 367
9.4.1 Shell应用程序 368
9.4.2桌面窗口 368
9.4.3任务条窗口 368
9.4.4任务相关的消息处理器 369
9.5 Shell组件 370
9.5.1 Shell相关的API 370
9.5.2常用对话框和常用控件 371
9.5.3控制面板 371
9.6安装运行一个定制的Shell 372
9.7处理用户界面的旋转 373
9.7.1创建一个操作系统设计 373
9.7.2修改注册表设置 373
9.7.3创建屏幕旋转应用程序 374
9.7.4创建并下载操作系统运行时映像 376
9.7.5运行屏幕旋转应用程序测试屏幕旋转 377
9.8定制用户界面 377
9.8.1创建一个皮肤 377
9.8.2可以被换肤的用户界面元素 378
9.8.3附加的用户界面定制选项 379
9.9Shell定制实例:IEShell 382
9.9.1创建一个My5hell操作系统设计 382
9.9.2创建、下载并测试操作系统运行时映像 382
9.9.3创建并测试IEShell应用程序 382
9.9.4设置IEShell为目标设备的Shell 384
本章小结 386
第10章 智能设备应用程序开发 387
10.1本地应用程序与可托管应用程序 387
10.2本地应用程序开发 387
10.2.1从Platform Builder导出SDK 387
10.2.2安装SDK 391
10.3 Windows CE下的Win32编程 393
10.3.1 Unicode 393
10.3.2 Unicode转换 394
10.3.3字符串输出 395
10.3.4文件I/O 396
10.4 eMbedded Visual C++应用程序开发 396
10.4.1探索eMbedded Visual C++ 4.0 396
10.4.2在模拟器上开发调试 398
10.4.3 eVC与Platform Builder的联合开发调试 403
10.5.NET Compact Framework应用程序开发 406
10.5.1智能设备应用程序开发 406
10.5.2添加目标设备对.NET的支持 408
10.5.3创建一个C#智能设备应用程序 409
10.5.4在模拟器上部署Windows CE应用程序 411
10.5.5在目标设备上部署智能设备应用程序 412
10.6 Pocket PC应用程序开发 414
10.6.1创建一个简单的Pocket PC应用程序 414
10.6.2在模拟器上部署Pocket PC应用程序 416
10.6.3在Pocket PC设备上部署Pocket PC应用程序 416
10.7 Smartphone应用程序开发 418
10.8在Windows CE设备上运行Pocket PC应用程序 420
本章小结 421
第11章 SQL Server CE应用程序开发 422
11.1 SQL Server CE简介 422
11.1.1 SQL Server CE的客户端-服务器环境 422
11.1.2 SQL Server CE的开发环境 424
11.2安装和配置SQL Server CE开发环境 425
11.2.1 SQL Server CE安装概述 425
11.2.2安装SQL Server 2000 426
11.2.3安装IIS 426
11.2.4安装SQL Server CE 2.0 427
11.2.5配置IIS服务对SQL Server CE 2.0的支持 429
11.3编制远程数据库复制应用程序 431
11.3.1创建SQL Server 2000数据库 433
11.3.2创建SQLCECF数据库复制应用程序 441
11.3.3部署并测试SQLCECF应用程序 451
11.3.4 SQL Server CE的数据库查询分析器 452
11.4编制远程数据访问应用程序 452
11.4.1 RDA的架构 453
11.4.2使用Pull方法 454
11.4.3使用Push方法 455
11.4.4使用SubmitSQL方法 455
本章小结 456
参考文献 457