标题：基于ARM的嵌入式Windows CE系统高级开发技术
图书信息
作者：李尚柏、钟睿、粟思科
出版社：清华大学出版社
ISBN：9787302265016
出版日期：2011 年10月
开本：16开 
页码：450 
版次：1-1
内容简介
嵌入式系统涉及嵌入式硬件设备、嵌入式操作系统和嵌入式应用软件等多种技术和概念。本书从嵌入式系统设计和应用开发的角度，系统、全面、详细地介绍了基于windows ce的嵌入式系统的设计原理、开发步骤和高级应用开发技术。全书共12章，分为3部分，第1～3章为基础和概念部分，介绍了嵌入式系统的基本概念、嵌入式微处理器及其主要的片内外设；第4～8章为windows ce操作部分，介绍了windows ce嵌入式操作系统的特性、体系结构、系统原理、设计方法、驱动程序开发以及应用程序开发；第9～12章为提高部分，在介绍基本原理、设计方法的基础上，为了加深读者对嵌入式系统基本概念和原理的理解，提高读者的设计水平，以应用实例分析的形式，重点讨论了嵌入式系统开发中常见但不易解决的技术难题，包括无操作系统的应用程序开发、windows ce中断驱动程序的开发、windows ce内核的修改和扩展以及嵌入式系统引导程序的修改和扩展等。
《基于arm的嵌入式windows ce系统高级开发技术》采用循序渐进、深入浅出、理论联系实际的写作理念，既有理论分析，又有丰富生动的应用实例，使读者能够快速、全面地掌握嵌入式系统设计与开发中的基本技能。
《基于arm的嵌入式windows ce系统高级开发技术》可作为从事嵌入式系统开发的工程技术人员的参考用书，也可作为高等院校电子工程、计算机、微电子、自动控制等相关专业本科生和研究生的教材。
目录
第1章 嵌入式系统概论 1 
1.1 概述 1 
1.2 嵌入式系统简介 1 
1.3 嵌入式微处理器 2 
1.3.1 arm嵌入式微处理器 3 
1.3.2 其他类型的嵌入式微处理器 4 
1.3.3 嵌入式微处理器的选型 4 
1.4 嵌入式操作系统 6 
1.4.1 嵌入式操作系统的特点 7 
1.4.2 嵌入式操作系统分类 7 
1.4.3 常见嵌入式操作系统简介 8 
1.4.4 常用嵌入式操作系统特征比较 9 
1.5 本章小结 10 
1.6 复习与思考 10 
第2章 arm微处理器基础 11 
2.1 概述 11 
2.2 arm处理器简介 11 
2.2.1 arm处理器结构特点 12 
2.2.2 arm的版本 13 
.2.2.3 arm结构的变体 14 
2.2.4 常见arm型号简介 15 
2.2.5 arm9tdmi内核 17 
2.2.6 arm9流水线结构 18 
2.3 arm微处理器的编程模型 19 
2.3.1 数据类型 19 
2.3.2 存储格式 20 
2.3.3 存储器组成 21 
2.3.4 工作状态 22 
2.3.5 工作模式 22 
2.3.6 arm寄存器 23 
2.4 arm的中断与异常 26 
2.4.1 arm异常种类 27 
2.4.2 异常的响应与处理 28 
2.4.3 异常优先级与异常向量 30 
2.5 arm编程技术和应用实例 30 
2.5.1 异常处理程序的安装 30 
2.5.2 软件中断异常 33 
2.5.3 内嵌式汇编的使用 39 
2.6 本章小结 41 
2.7 复习与思考 41 
第3章 arm9内核处理器常用资源 42 
3.1 概述 42 
3.2 arm920t内核及其处理器简介 42 
3.3 boot rom 45 
3.3.1 boot rom地址映射 46 
3.3.2 boot rom引导过程 46 
3.3.3 启动状态硬件配置 48 
3.4 系统控制器 49 
3.4.1 系统的复位与启动 50 
3.4.2 时钟控制 51 
3.4.3 电源管理 53 
3.5 向量中断控制器 53 
3.5.1 中断优先级 54 
3.5.2 中断源 54 
3.5.3 关于中断的进一步讨论 56 
3.6 lcd控制器 58 
3.7 图形加速器 60 
3.8 maverickcrunch数字协处理器 61 
3.9 dma控制器 61 
3.10 usb控制器 62 
3.11 存储控制器 64 
3.12 gpio 65 
3.13 本章小结 66 
3.14 复习与思考 67 
第4章 windows ce操作系统 68 
4.1 概述 68 
4.2 windows ce操作系统简介 68 
4.2.1 windows ce的版本和发展史 69 
4.2.2 windows ce与windows xp embedded 69 
4.3 windows ce系统特点 70 
4.3.1 系统功能模块化 70 
4.3.2 稳定的实时性支持 71 
4.3.3 良好的兼容性和平台支持 72 
4.3.4 丰富的多媒体支持 72 
4.3.5 广泛的全球性支持 73 
4.3.6 强大的开发平台支持 73 
4.3.7 广阔的应用前景 73 
4.4 windows ce开发概述 74 
4.4.1 windows ce开发类型 74 
4.4.2 windows ce开发流程 74 
4.5 windows ce的开发工具 76 
4.5.1 platform builder简介 76 
4.5.2 evc简介 82 
4.5.3 visual studio 84 
4.5.4 windows ce标准sdk简介 85 
4.6 远程访问工具 86 
4.6.1 远程工具的连接 87 
4.6.2 远程文件浏览工具 87 
4.6.3 远程注册表编辑器 88 
4.6.4 远程系统信息查看工具 89 
4.6.5 远程测评工具 89 
4.6.6 远程内核跟踪工具 90 
4.6.7 远程堆查看工具 91 
4.6.8 远程进程浏览工具 91 
4.6.9 远程消息监视工具 92 
4.7 本章小结 93 
4.8 复习与思考 93 
第5章　windows ce体系结构 94 
5.1 概述 94 
5.2 wince操作系统模型 95 
5.2.1　硬件层 96 
5.2.2　oem层 96 
5.2.3 操作系统层 97 
5.2.4 应用程序层 99 
5.3 进程和线程 99 
5.3.1　进程 99 
5.3.2　线程 103 
5.3.3　线程同步 109 
5.3.4 进程间的通信 120 
5.4 内存管理 123 
5.4.1 rom与ram 123 
5.4.2 物理内存与虚拟内存 124 
5.4.3　内存的组织结构 125 
5.4.4　进程地址空间结构 127 
5.4.5　堆和栈 128 
5.4.6 内存管理函数 130 
5.5 文件管理与注册表 131 
5.5.1 文件系统 131 
5.5.2 wince文件i/o函数 132 
5.5.3 对象存储 133 
5.5.4 注册表 134 
5.6 用户界面和图形子系统简介 140 
5.6.1 图形系统 140 
5.6.2 窗口系统 141 
5.6.3 事件系统 141 
5.7 应用实例：进程间的通信方法 144 
5.7.1 剪贴板 145 
5.7.2　wm_copydata消息 147 
5.7.3 内存映射文件 149 
5.7.4　点到点消息队列 152 
5.8 本章小结 155 
5.9 复习与思考 156 
第6章 windows ce的内核定制 157 
6.1 概述 157 
6.2 板级支持包 157 
6.2.1 bsp的基本概念 158 
6.2.2 bsp包的内容 158 
6.2.3 bsp的安装 159 
6.3 windows ce内核定制 160 
6.3.1 windows ce基本内核定制 160 
6.3.2 内核的编译 171 
6.3.3 内核下载 173 
6.3.4 操作系统映像的调试 174 
6.4 操作系统映像的配置文件 179 
6.4.1 bib文件 180 
6.4.2 reg文件 184 
6.4.3 dat文件 184 
6.4.4 db文件 185 
6.5 sdk的生成与导出 186 
6.6 内核定制范例 186 
6.6.1 添加人机接口组件 186 
6.6.2 存储设备支持 187 
6.7 本章小结 188 
6.8 复习与思考 188 
第7章 windows ce驱动程序 189 
7.1 概述 189 
7.1.1 驱动开发的硬件基础 190 
7.1.2 驱动开发前的必要准备 191 
7.2 wince驱动程序 192 
7.2.1 驱动程序分类 192 
7.2.2 wince设备驱动概览 195 
7.3 设备管理器 198 
7.3.1 设备注册信息 199 
7.3.2 设备命名 201 
7.3.3 设备索引 201 
7.3.4 设备管理api 202 
7.3.5 驱动程序加载 202 
7.4 驱动程序的资源 204 
7.4.1 i/o资源管理器 204 
7.4.2 中断处理 205 
7.4.3 内存管理和使用 211 
7.5 流接口设备驱动 217 
7.5.1 流接口驱动的结构 217 
7.5.2 流接口驱动的访问 223 
7.5.3 流接口驱动的访问方式 225 
7.6 pcmcia设备驱动程序剖析 225 
7.6.1 wince的pcmcia卡设备驱动结构 226 
7.6.2 ep9315的pcmcia总线接口 227 
7.6.3 pcmcia卡设备驱动的实现 229 
7.7 本章小结 244 
7.8 复习与思考 244 
第8章 windows ce应用程序开发 245 
8.1 概述 245 
8.2 wince mfc与标准桌面系统mfc的差异 245 
8.2.1 完全支持的mfc类 246 
8.2.2 不完全支持的mfc类 248 
8.2.3 不支持的类 252 
8.2.4 wince专用类 253 
8.3 wince数据结构差异 254 
8.3.1 支持的数据结构 254 
8.3.2 不支持的数据结构 256 
8.4 字符及字符串处理差异 256 
8.4.1 ansi字符串和unicode字符串 257 
8.4.2 字符串处理函数 257 
8.4.3 ansi字符串与unicode字符串之间的转换 258 
8.4.4 mfc类cstring对字符串的处理 260 
8.5 网络编程 260 
8.5.1 winsock网络编程接口 261 
8.5.2 wince网络编程函数 262 
8.5.3 udp编程 264 
8.5.4 tcp编程 270 
8.6 ftp编程 284 
8.6.1 ftp服务器注册表设置 285 
8.6.2 ftp编程函数 286 
8.6.3 ftp编程实例 287 
8.7 资源共享编程 297 
8.7.1 smb服务器的注册表设置 297 
8.7.2 资源共享编程函数 300 
8.7.3 磁盘共享编程实例 301 
8.8 本章小结 308 
8.9 复习与思考 309 
第9章 应用实例——无操作系统的应用程序开发 310 
9.1 概述 310 
9.2 ads开发环境简介 310 
9.2.1 codewarrior 311 
9.2.2 axd 312 
9.2.3 multi-ice 313 
9.3 ads应用程序开发 314 
9.3.1 建立工程项目 314 
9.3.2 产生源文件代码 316 
9.3.3 编译项目 317 
9.3.4 项目的软件调试 320 
9.4 嵌入式系统引导程序 325 
9.4.1 bootloader的任务和开发方式 325 
9.4.2 ep9315开发板的启动配置 326 
9.4.3 bootloader代码分析 327 
9.5 无操作系统应用程序的生成和调试 334 
9.5.1 无操作系统应用程序的生成 334 
9.5.2 无操作系统应用程序的下载 337 
9.5.3 无操作系统应用程序的引导和测试 337 
9.5.4 应用程序中异常中断处理 339 
9.6 本章小结 341 
9.7 复习与思考 341 
第10章 应用实例——windows ce中断驱动程序开发 342 
10.1 概述 342 
10.1.1 创建驱动程序工程 343 
10.1.2 流驱动程序接口代码 345 
10.1.3 模块定义文件（*.def文件） 347 
10.1.4 驱动程序注册表 348 
10.1.5 驱动程序的产生、加载和测试 348 
10.1.6 应用程序接口测试 349 
10.2 驱动程序中断的使用 350 
10.2.1 windows ce逻辑中断 350 
10.2.2 硬件中断到逻辑中断映射的实现 352 
10.2.3 中断的安装 353 
10.2.4 egpio中断的映射 355 
10.2.5 egpio中断的安装 356 
10.3 驱动程序中数据的输入和输出 358 
10.3.1 驱动程序中物理内存的映射 358 
10.3.2 驱动程序中内存的使用 359 
10.3.3 在中断中获取设备的数据 361 
10.3.4 应用程序从驱动中读取数据 362 
10.3.5 从应用程序获取数据 362 
10.4 驱动程序共享应用程序的地址空间 363 
10.4.1 应用程序内存到驱动程序地址空间的映射 363 
10.4.2 驱动程序中使用应用程序的地址空间 367 
10.4.3 在驱动程序中向应用程序发消息 369 
10.4.4 在应用程序中响应驱动程序的消息 370 
10.5 本章小结 370 
10.6 复习与思考 371 
第11章 应用实例——内核驱动的修改和扩展 372 
11.1 概述 372 
11.2 m41st95实时时钟芯片简介 373 
11.2.1 m41st95的spi总线接口 373 
11.2.2 m41st95的内部寄存器 375 
11.3 ep9315的spi接口 377 
11.3.1 spi接口寄存器 377 
11.3.2 spi的工作过程 380 
11.4 m41st95与ep9315的硬件、软件接口 381 
11.4.1 硬件接口 381 
11.4.2 ep9315 spi接口的初始化 382 
11.4.3 m41st95的初始化 384 
11.4.4 m41st95的多寄存器读写 387 
11.5 windows ce下实时时钟的内核实现 389 
11.5.1 windows ce的时钟系统及其用户接口 390 
11.5.2 windows ce实时时钟的内核实现 392 
11.5.3 windows ce实时时钟的实现步骤 394 
11.5.4 修改内核代码应注意的问题 397 
11.6 本章小结 398 
11.7 复习与思考 398 
第12章 应用实例——引导程序的修改和扩展 399 
12.1 概述 399 
12.2 ep9315的sdram控制器 400 
12.3 sdram接口及地址映射 403 
12.3.1 sdram存储器电路及寻址方式 403 
12.3.2 4bank×13row×9col sdram的地址映射 405 
12.3.3 4bank×13row×10col sdram的地址映射 406 
12.4 sdram的初始化 407 
12.4.1 sdram的模式寄存器 407 
12.4.2 sdram的初始化 408 
12.5 arm处理器的内存管理部件mmu 412 
12.5.1 存储器管理部件 412 
12.5.2 虚拟地址到物理地址的变换 413 
12.5.3 内存访问过程 419 
12.5.4 地址映射表的程序实现 420 
12.5.5 sdram扩容后的地址映射表 426 
12.6 windows ce的存储器管理 427 
12.6.1 虚拟地址模型及其地址映射 427 
12.6.2 系统内存配置 431 
12.6.3 系统内存配置调整 434 
12.7 本章小结 435 
12.8 复习与思考 435 
参考文献 436 
附录a arm指令速查表 437 
附录b thumb指令速查表 448