第1章 关于本教程 1
1.1 本书内容的组织 2
1.2 关于本教程涉及的实例 2
1.3 计算机配置需求 3
第2章 如何开始嵌入式开发 4
2.1 什么是嵌入式系统 4
2.2 充分利用现有的硬件资源 5
2.3 嵌入式开发入门第一步 5
2.4 建立一个具体的嵌入式开发的小项目 6
第3章 建立Windows下的交叉编译环境 7
3.1 Cygwin的安装 7
3.2 ARM编译工具RVDS的安装 13
第4章 开发环境的介绍与使用 17
4.1 Cygwin的作用 17
4.2 RVDS的作用 17
4.3 开发环境的使用 17
第5章 认识ARM CPU的工作原理 19
5.1 从新的角度认知CPU 19
5.2 ARM系列的CPU概览 20
5.3 ARM CPU的内部初探 21
5.4 ARM处理器的工作模式 22
5.5 ARM CPU的寄存器 24
5.6 关于寄存器的命名 25
5.7 ARM寄存器的使用规则 25
5.8 CPSR和SPSR寄存器 27
5.9 本章小结 29
第6章 从整体上认识ARM CPU 30
6.1 实例CPU内核特性简介 30
6.2 ARM CPU的内部结构初探 31
6.3 认识ARM CPU的MEMORY MAP 32
6.4 总线的概念 35
6.5 CPU是如何操控外设的 37
第7章 快速ARM汇编语言 40
7.1 ARM汇编文件格式 40
7.2 认识基本的ARM指令 42
第8章 ARM体系结构 49
8.1 认识嵌入式系统软件的组成 49
8.2 ARM处理器及Memory系统 51
8.3 大小端的概念 52
8.4 ARM存储系统 53
8.5 THUMB与ARM指令 57
8.6 解析Image文件 57
8.7 认识ARM的编译工具 60
8.8 汇编编译器 61
8.9 C&C++编译器armcc 63
8.10 ARM链接器armlink 66
8.11 为什么有Load region和execution region 71
8.12 认识什么是scatter文件 73
8.13 烧写到嵌入式设备里面的文件到底是什么 81
第9章 认识信号和时序 84
9.1 硬件之间通信的桥梁——信号 84
9.2 什么是时序 86
9.3 LCD时序分析 86
9.4 如何满足外设的时序要求 89
第10章 认识并使用GPIO 91
10.1 认识GPIO 91
10.2 如何配置并使用GPIO 92
第11章 认识中断 95
11.1 中断分为两类:内部中断、外部中断 95
11.2 中断实例分析 96
11.3 配置中断管脚 96
11.4 中断信号触发条件的配置 96
11.5 中断在哪里被处理 97
第12章 让你的LCD工作起来 100
12.1 LCD的历史与原理 100
12.2 为LCD编写驱动程序 102
12.3 LCD的硬件信号及驱动程序示例 103
第13章 NAND Flash驱动的开发 109
13.1 认识NAND Flash 109
13.2 NAND Flash的存储结构 111
13.3 坏块的概念 112
13.4 认识NAND Flash的特性 113
13.5 NAND Flash的硬件接口 114
13.6 NAND Flash的操作命令说明 115
13.7 NAND Flash如何寻址 116
13.8 读取NAND Flash ID 118
13.9 读取NAND Flash的页数据 119
13.10 Page program,给某个页进行编程操作 120
13.11 擦除(Erase)一个block 122
13.12 关于8 bit接口的NAND Flash 124
13.13 ECC是什么 126
13.14 NAND Flash中一个特殊的block 127
第14章 I2C接口设备驱动的开发 128
14.1 I2C是什么 128
14.2 I2C总线的特点 128
14.3 12C接口的模式 129
14.4 总线的构成 129
14.5 I2C设备的寻址 130
14.6 I2C总线信号协议 130
11.7 I2C数据信号传输的规定 131
14.8 一个完整的I2C数据传递过程 132
14.9 读懂示波器上的I2C 133
14.10 I2C接口设备的调试 135
第15章 SPI接口驱动的开发 136
15.1 SPI是什么 136
15.2 SPI总线的特点 136
15.3 总线构成及信号类型 137
15.4 SPI的四种工作模式 137
15.5 读懂示波器上的SPI 139
15.6 SPI接口设备的调试 140
第16章 认识EBI接口 142
16.1 EBI硬件接口 142
16.2 访问EBI接口的外设 143
16.3 EBI接口的配置 145
16.4 关于page mode与burst mode的理解 147
16.5 BURST模式 148
第17章 利用TRACE32进行调试 150
17.1 ARM调试接口简介 150
17.2 TRACE32是什么 151
17.3 TRACE32的安装 152
17.4 TRACE32调试功能原理 159
17.5 TRACE32能做什么 159
17.6 运行TRACE32 159
17.7 如何把TRACE32与工程关联起来 161
17.8 TRACE32调试常用命令 164
17.9 常用窗口选项介绍 166
17.10 Trace32常用调试方法 169
第18章 认识硬件原理图 173
18.1 什么是硬件原理图 173
18.2 用掌握硬件原理图吗 173
18.3 硬件原理图好掌握吗 174
18.4 理解一个简单的原理图 174
第19章 后记 176
附录A Glossary(缩略词汇表) 177
附录B 参考文献与相关网站 179