第1章 嵌入式系统概述 1
1.1 嵌入式系统基础 1
1.1.1 嵌入式系统的定义 1
1.1.2 嵌入式系统的基本组成 1
1.1.3 嵌入式系统的特点 2
1.1.4 嵌入式系统的发展趋势 2
1.2 嵌入式微处理器 3
1.2.1 嵌入式微处理器简介 3
1.2.2 ARM微处理器 3
1.2.3 嵌入式DSP处理器 4
1.2.4 网络处理器 4
1.2.5 嵌入式片上系统 5
1.3 嵌入式操作系统 5
1.3.1 操作系统的基本概念 5
1.3.2 嵌入式操作系统简介 6
1.3.3 实时操作系统基础 6
1.3.4 常见的实时操作系统及应用 7
1.4 本章小结 7
思考与练习 8
第2章 ARM体系结构 9
2.1 ARM处理器简介 9
2.1.1 ARM处理器的型号和特点 9
2.1.2 ARM处理器结构 11
2.2 ARM寄存器描述 12
2.2.1 ARM处理器的工作状态 12
2.2.2 ARM处理器的运行模式 12
2.2.3 ARM状态下的寄存器组 13
2.2.4 程序状态寄存器 14
2.2.5 异常处理 15
2.3 存储器映射I/O 16
2.3.1 地址空间 17
2.3.2 存储器格式 17
2.3.3 非对齐的存储器访问 17
2.3.4 存储器映射 18
2.4 本章小结 18
思考与练习 19
第3章 ARM硬件模块开发 20
3.1 ARM硬件平台结构 20
3.1.1 最小系统及常用硬件模块 20
3.1.2 硬件设计基本原则 21
3.1.3 ARM调试系统 21
3.2 SDRAM模块设计 22
3.2.1 SDRAM芯片引脚描述 22
3.2.2 SDRAM的模块原理图 23
3.2.3 SDRAM的工作模式 24
3.2.4 SDRAM的初始化操作 24
3.2.5 SDRAM的基本读写操作 25
3.2.6 SDRAM控制器的状态转换 25
3.3 Flash模块设计 26
3.3.1 Flash的特点和分类 26
3.3.2 Nor-Flash及Nand-Flash芯片引脚描述 27
3.3.3 Flash硬件设计 29
3.3.4 Flash存储器的操作 30
3.4 LCD模块设计 31
3.4.1 LCD工作原理 31
3.4.2 LCD硬件电路设计 32
3.4.3 LCD驱动程序设计 33
3.5 USB模块设计 35
3.5.1 USB发展简介 35
3.5.2 USB工作原理及特点 36
3.5.3 USB硬件电路设计 38
3.5.4 USB驱动程序设计 39
3.6 I/O接口模块设计 41
3.6.1 GPIO 41
3.6.2 UART 42
3.6.3 SPI接口 43
3.6.4 I2C总线 45
3.7 本章小结 45
思考与练习 46
第4章 ARM编程与调试 47
4.1 ARM指令系统 47
4.1.1 ARM指令介绍 47
4.1.2 ARM指令寻址方式 49
4.1.3 ARM指令集介绍 52
4.1.4 Thumb指令集 59
4.2 ARM汇编语言设计 60
4.2.1 ARM汇编语言格式简介 61
4.2.2 ARM汇编语言的程序设计 62
4.3 ARM C语言设计 63
4.3.1 C语言编程技术 64
4.3.2 C语言与汇编语言混合编程 65
4.3.3 ARM C/C++编译器 66
4.4 ADS开发平台 68
4.4.1 ADS开发平台的特点 68
4.4.2 CodeWarrior软件的使用方法 69
4.4.3 AXD调试软件的使用方法 77
4.5 SDT开发平台 81
4.6 基于JTAG的调试系统 82
4.6.1 JTAG调试接口简介 82
4.6.2 JTAG调试系统的特点及结构 83
4.6.3 常用JTAG调试工具 83
4.7 仿真器调试系统 85
4.7.1 初始化存储器 86
4.7.2 在线仿真 86
4.7.3 典型调试问题及解决方法 88
4.8 本章小结 89
思考与练习 89
第5章 中断在嵌入式系统中的应用 90
5.1 中断概述 90
5.1.1 中断原理 90
5.1.2 中断的分类 91
5.1.3 中断优先级及其判别 93
5.1.4 中断处理过程 93
5.2 Windows CE下的中断处理分析 95
5.2.1 Windows CE中断的相关概念 95
5.2.2 Windows CE中断处理过程分析 96
5.3 本章小结 100
思考与练习 101
第6章 Windows CE嵌入式操作系统 102
6.1 操作系统概述 102
6.1.1 操作系统的发展 102
6.1.2 操作系统的分类和结构 102
6.1.3 嵌入式操作系统 103
6.1.4 嵌入式实时操作系统 103
6.1.5 典型的嵌入式操作系统 104
6.2 Windows CE嵌入式操作系统概述 107
6.2.1 Windows CE的特点 108
6.2.2 Windows CE的应用 109
6.2.3 Windows CE的体系结构和功能 109
6.3 Windows CE的管理 111
6.3.1 进程、线程 111
6.3.2 内存管理 113
6.3.3 设备管理器与文件系统 115
6.3.4 用户界面与图形系统 117
6.3.5 注册表 117
6.3.6 电源管理 119
6.4 Windows CE操作系统设计 120
6.4.1 Platform Builder集成开发环境 120
6.4.2 定制Windows CE 122
6.4.3 Windows CE目录结构 127
6.4.4 Windows CE的构建系统 129
6.5 Windows CE BSP开发 130
6.5.1 BSP概述 130
6.5.2 开发Boot Loader 131
6.5.3 开发OAL 134
6.6 应用实例 138
6.7 本章小结 142
思考与练习 142
第7章 Windows CE应用程序设计 143
7.1 Windows CE应用程序开发简介 143
7.2 Windows CE系统的开发工具 144
7.2.1 Windows CE系统的开发工具概要 144
7.2.2 使用EVC开发应用程序 146
7.2.3 使用Visual Studio 2005开发应用程序 147
7.2.4 使用Platform Builder开发应用程序 147
7.2.5 各种开发工具的比较 148
7.3 Windows CE应用程序开发流程 149
7.3.1 安装SDK 149
7.3.2 代码编写和调试 151
7.4 Windows CE应用程序接口 153
7.4.1 Windows程序设计基础 153
7.4.2 Win32 API 154
7.4.3 MFC 155
7.4.4 ATL 156
7.4.5 .NET Compact Framework 157
7.4.6 接口选择原则 157
7.5 开发Windows CE应用程序的注意事项 160
7.6 基于VS 2005的应用程序开发简例 161
7.7 本章小结 166
思考与练习 166
第8章 Windows CE驱动程序开发 167
8.1 Windows CE驱动程序开发基础 167
8.1.1 Windows CE驱动程序概述 167
8.1.2 Windows CE驱动程序模型 167
8.1.3 Windows CE驱动程序分类 169
8.1.4 Windows CE驱动程序源代码 171
8.2 流接口驱动程序设计 171
8.2.1 流接口驱动程序的架构 172
8.2.2 设备文件名 172
8.2.3 流接口函数 172
8.2.4 DMA实现 175
8.3 设备管理器和电源管理 176
8.3.1 设备管理器 176
8.3.2 电源管理 177
8.4 Windows CE中的服务 178
8.4.1 Windows CE服务程序概述 178
8.4.2 Windows CE服务的启动和终止 180
8.4.3 服务控制 181
8.5 I2C(IIC)接口驱动设计实例 181
8.5.1 IIC总线概要及其特点 181
8.5.2 IIC总线与硬件设备之间的数据交互 182
8.5.3 初始化IIC中断和编写ISR 183
8.5.4 编写流驱动程序 184
8.5.5 IIC驱动程序的封装和添加 185
8.6 本章小结 185
思考与练习 186
第9章 基于Nios Ⅱ嵌入式SOPC设计 187
9.1 SOPC及其技术 187
9.2 Nios Ⅱ软核处理器 188
9.2.1 Nios Ⅱ软核处理器简介 188
9.2.2 可配置嵌入式软核处理器的优势 189
9.3 SOPC的FPGA简介 189
9.3.1 Cyclone系列 189
9.3.2 Cyclone Ⅱ系列 190
9.3.3 Stratix系列 190
9.3.4 Stratix Ⅱ系列 191
9.3.5 Xilinx公司的Virtex-Ⅱ Pro FPGA 191
9.4 SOPC开发流程及开发平台简介 192
9.4.1 硬件开发 193
9.4.2 软件开发 193
9.4.3 SOPC基本开发流程简介 193
9.5 Nios Ⅱ应用程序及其外设HAL驱动开发 204
9.5.1 Nios Ⅱ IDE集成开发环境 204
9.5.2 HAL系统库 207
9.5.3 使用HAL开发应用程序 209
9.5.4 开发HAL下的设备驱动 211
9.6 本章小结 216
思考与练习 216
第10章 嵌入式系统项目开发方法 217
10.1 嵌入式系统项目主要开发流程 218
10.1.1 需求分析 218
10.1.2 总体方案设计 219
10.1.3 详细设计阶段 220
10.1.4 项目测试及中试 223
10.1.5 项目结题 224
10.2 嵌入式系统工程设计方法简介 224
10.2.1 由上而下与由下而上 224
10.2.2 UML系统建模 225
10.2.3 面向对象的思想 225
10.3 本章小结 227
思考与练习 227
后记 229
参考文献 230