序
前言
第1章 引言
1.1 什么是嵌入式系统
1.2 嵌入式系统的发展历史
1.3 嵌入式操作系统基本概念
1.4 Windows CE发展简史
1.4.1 起因
1.4.2 迎战
1.4.3 Windows CE的功能
1.5 Windows CE的应用领域
1.5.1 PDA市场
1.5.2 新一代手机操作系统
1.5.3 工业控制
1.6 本书的组织
上篇 Windows CE.NET结构分析
第2章 Windows CE.NET系统结构
2.1 透视系统关键特性
2.1.1 操作系统核心特性
2.1.2 应用系统基础设施
2.1.3 嵌入式系统支持
2.1.4 工具
2.2 代码组织
2.2.1 源代码树的构成
2.2.2 代码共享
2.2.3 创建系统
2.3 系统模型
2.3.1 层次化的结构
2.3.2 模块化的组织
2.4 系统机制
2.4.1 陷阱调度
2.4.2 进程间通信机制
2.4.3 系统调用接口
2.4.4 可扩展固件接口
2.4.5 注册表
2.4.6 Windows CE.NET服务
第3章 进程、线程描述和调度
3.1 进程的定义和描述
3.1.1 进程概述
3.1.2 Windows CE的进程描述
3.1.3 Windows CE进程结构分析
3.1.4 进程的同步和互斥
3.2 线程
3.2.1 线程概述
3.2.2 Windows CE的线程结构分析
3.3 其他一些重要的数据结构
3.4 Windows CE中的调度
3.4.1 Windows CE调度的概述
3.4.2 线程调度的时机
3.4.3 关于线程的优先级
3.4.4 跟调度有关的函数简介
3.5 关于中断
3.5.1 关于核心中断
3.5.2 相关函数
第4章 内存管理
4.1 Windows CE.NET内存体系结构
4.1.1 物理结构
4.1.2 逻辑层次结构
4.1.3 Windows CE地址空间
4.1.4 32位虚拟地址的划分
4.2 主要数据结构
4.2.1 空闲链表
4.2.2 内核内存空间信息
4.2.3 块描述符MEMBLOCK
4.2.4 有关内存管理的系统全局变量
4.3 内存的分配与回收
4.3.1 物理内存的分配和回收
4.3.2 虚存的分配和回收
4.4 逻辑内存管理
4.4.1 概述
4.4.2 本地堆和独立堆
4.4.3 逻辑地址的数据结构
4.4.4 堆的创建和初始化
4.4.5 堆的分配和回收
4.5 Windows CE的保护和共享机制
4.5.1 保护
4.5.2 Windows CE的共享机制
第5章 存储管理
5.1 概述
5.2 对象存储
5.3 存储管理器
5.3.1 文件系统过滤器
5.3.2 文件系统驱动程序管理器与文件系统驱动程序
5.3.3 分区管理器与分区驱动程序
5.3.4 块设备驱动程序管理器
5.4 文件系统驱动程序的创建与加载
5.4.1 文件系统驱动程序的创建
5.4.2 文件系统驱动程序的加载
5.4.3 文件系统驱动程序管理器在其中所起的作用
5.5 文件系统实例:FAT文件系统
5.5.1 FATFS的访问过程
5.5.2 Buffer Cache机制
5.5.3 Stream的实现
第6章 设备管理
6.1 Windows CE.NET的设备管理模式
6.1.1 Windows CE.NET设备管理部分的体系构成
6.1.2 注册表
6.1.3 HAL以及OAL支持
6.1.4 Windows CE.NET的设备驱动集成
6.2 设备管理器
6.2.1 设备信息管理
6.2.2 I/O资源管理
6.2.3 设备管理接口
6.3 电源管理器
6.3.1 Windows CE.NET电源管理体系
6.3.2 电源状态
6.3.3 电源管理接口
6.3.4 系统电源状态转换
6.3.5 驱动程序电源管理
6.3.6 电源管理器的实现
6.4 即插即用管理器
6.4.1 数据结构
6.4.2 通知
6.4.3 广告
6.5 设备驱动程序
6.5.1 设备驱动程序接口
6.5.2 设备驱动程序结构
6.5.3 中断处理
6.5.4 DMA
6.5.5 实时特性
6.5.6 设备驱动程序的加载
6.5.7 Windows CE.NET的类型设备驱动程序
第7章 用户界面与图形子系统
7.1 GWE概述
7.2 用户输入系统
7.2.1 消息队列
7.2.2 输入管理
7.3 图形设备接口
7.3.1 基本GDI对象
7.3.2 图形原语
7.3.3 调色板
7.3.4 位图
7.3.5 字体
7.3.6 GDI的组件
7.4 显示驱动程序接口
中篇 Windows CE.NET情景分析
第8章 动态链接库的加载分析
8.1 loader.c中代码组织的结构
8.2 module structure
8.3 从LoadOneLibraryPart2开始看DLL的加载过程
8.4 DLL载入过程——InitModule的实现
8.4.1 调用OpenAD11生成执行文件指针(openexe_t)
8.4.2 装入module的e32头信息
8.4.3 分配内存给DLL,得到Module->BasePtr
8.4.4 给name和o32对象分配内存
8.4.5 重定位映像
8.4.6 找到EXE的起始IP
8.5 情景分析
第9章 线程在队列之间转换分析
9.1 概述
9.2 具体分析
9.2.1 MakeRun()函数分析
9.2.2 RunDequeue()函数分析
9.2.3 SleepDequeue()函数分析
第10章 虚存分配
10.1 分配过程概述
10.1.1 参数验证
10.1.2 扫描虚存区域找到合适大小的空闲块
10.1.3 在得到的虚存块中写入控制信息
10.1.4 获取足够的物理块并建立映射
10.1.5 小实验:虚存分配的直观印象
10.2 物理内存的获取
10.2.1 分配过程
10.2.2 小实验:HoldPages函数跟踪
10.3 虚存分配代码片段
第11章 文件系统的建立及访问过程
11.1 存储管理器分层结构的建立及可安装文件系统的加载
11.1.1 几个重要的数据结构
11.1.2 情景分析
11.2 FAT文件系统中CreateFile的具体流程
11.2.1 实验环境
11.2.2 参数介绍
11.2.3 局部变量
11.2.4 过程跟踪
第12章 驱动程序加载
12.1 概述
12.2 StartOneDriver
12.2.1 设备信息的获取和维护
12.2.2 访问核心设备管理数据表
12.2.3 系统事件的传递
12.3 主要源程序清单以及情景注释
下篇 实验
第13章 Windows CE应用程序开发
13.1 Windows CE编程模型简介
13.2 Windows CE编程环境
13.2.1 系统安装
13.2.2 eMbedded Visual C++集成开发环境的组件与功能
13.2.3 应用程序的创建
13.2.4 编译生成可执行文件
13.2.5 应用程序的调试
第14章 Windows CE驱动程序开发
14.1 Platform Builder 4.0介绍
14.2 使用Platform Builder集成开发环境
14.3 驱动程序的导出
14.4 驱动程序的代码结构
14.5 驱动程序的调试
14.6 驱动程序实例
第15章 Windows CE.NET调试
15.1 简介
15.2 调试工具
15.2.1 Watch Window
15.2.2 Variables Window
15.2.3 Memory Window
15.2.4 Registers Window
15.2.5 Call Stack Window
15.2.6 Advanced Memory Window
15.2.7 Processes Window
15.2.8 Threads Window
15.2.9 Modules and Symbols Window
15.3 调试过程
第16章 实验
16.1 同步与互斥
16.2 内存管理
16.2.1 实验一:虚存
16.2.2 实验二:逻辑内存管理性能
16.3 存储系统
16.3.1 实验一:RAMDISK I/O
16.3.2 实验二:文件系统与目录结构
16.4 设备驱动程序
16.5 图形系统