第1章 概述 1
1.1 嵌入式系统 1
1.1.1 嵌入式系统的定义 2
1.1.2 嵌入式系统的发展历史 3
1.1.3 嵌入式系统的特点 5
1.1.4 典型嵌入式系统的基本组成 6
1.1.5 嵌入式系统的应用领域 7
1.2 嵌入式处理器 9
1.2.1 嵌入式微控制器 9
1.2.2 数字信号处理器 10
1.2.3 嵌入式微处理器 10
1.2.4 片上系统 11
1.3 嵌入式操作系统 12
1.4 嵌入式系统的开发流程 15
1.5 嵌入式系统的发展趋势 16
第2章 ARM微处理器基础 19
2.1 ARM微处理器概述 19
2.1.1 对ARM的认识 19
2.1.2 ARM微处理器的应用领域及特点 20
2.1.3 ARM微处理器系列 21
2.1.4 ARM微处理器结构 22
2.1.5 ARM芯片的应用选型 24
2.2 ARM7微处理器的编程模型 25
2.2.1 指令长度及数据类型 27
2.2.2 ARM体系结构的存储器格式 28
2.2.3 ARM微处理器的工作状态 28
2.2.4 ARM微处理器工作模式 29
2.2.5 寄存器组织 29
2.2.6 异常 34
第3章 ARM指令系统与编程基础 38
3.1 ARM指令系统 38
3.1.1 ARM指令集概述 38
3.1.2 ARM指令的寻址方式 42
3.1.3 ARM指令集 46
3.1.4 Thumb指令及其应用 58
3.2 ARM程序设计基础 58
3.2.1 ARM伪指令 58
3.2.2 汇编语言的语句格式 65
3.2.3 汇编语言的程序设计 67
3.2.4 汇编语言与C/C++语言的混合编程 71
3.3 实验与练习 72
3.3.1 EL-ARM(DSP)-E100/830教学实验系统简介(核心板资源) 72
3.3.2 实验一 ARM ADS1.2集成开发环境的创建及简要介绍 74
3.3.3 实验二 ARM的汇编语言程序设计 88
3.3.4 实验三 基于ARM的C语言程序设计 94
第4章 嵌入式应用系统的设计 101
4.1 嵌入式硬件系统设计概述 101
4.2 S3C44B0x最小应用系统的设计 104
4.2.1 S3C44B0x概述 105
4.2.2 S3C44B0x的引脚分布及信号描述 107
4.2.3 S3C44B0x最小应用系统 110
4.3 最小应用系统各单元电路设计 111
4.3.1 S3C44B0x芯片引脚分析 111
4.3.2 电源电路设计 111
4.3.3 晶振电路与复位电路的设计 112
4.3.4 Flash存储器接口电路的设计 113
4.3.5 SDRAM接口电路的设计 118
4.3.6 UART串行接口电路的设计 122
4.3.7 JTAG接口调试电路的设计 123
4.4 其他常用接口电路的设计 125
4.4.1 10M以太网接口电路的设计 125
4.4.2 主/从USB接口电路的设计 130
4.5 印制电路板的设计 132
4.5.1 电源质量与分配 132
4.5.2 同类型信号线的分布 133
4.6 嵌入式应用系统的调试 133
4.6.1 电源、晶振及复位电路的调试 134
4.6.2 S3C44B0x及JTAG接口电路的调试 134
4.6.3 SDRAM接口电路的调试 135
4.6.4 Flash接口电路的调试 136
4.6.5 10M/100M以太网接口电路的调试 136
第5章 嵌入式应用系统的扩展接口电路 136
5.1 中断处理系统 139
5.1.1 ARM中断系统 140
5.1.2 S3C44B0x的定时器 143
5.1.3 S3C44B0x的通用I/O端口 150
5.1.4 实验四 定时器中断控制的LED显示实验 152
5.2 键盘与七段数码管接口 157
5.2.1 通过I/O端口直接控制的键盘 157
5.2.2 键盘及七段数码管控制芯片HD7279A 160
5.2.3 实验五 键盘和七段数码管控制实验 162
5.3 LCD接口 168
5.3.1 S3C44B0x中的LCD控制器 168
5.3.2 8位彩色LCD显示原理 173
5.3.3 实验六 LCD显示实验 179
5.4 模数(A/D)转换接口 184
5.4.1 A/D转换器的工作原理 184
5.4.2 S3C44B0x的A/D转换器 188
5.4.3 A/D转换函数分析 190
5.4.4 实验七 A/D转换接口实验 191
第6章 嵌入式μCLinux及其应用开发6.1 嵌入式操作系统μCLinux概述 193
6.2 开发工具GNU的使用 195
6.2.1 GCC编译器 195
6.2.2 GNU Make 197
6.2.3 使用GDB命令工具调试程序 202
6.3 建立μCLinux开发环境 203
6.3.1 建立交叉编译器 203
6.3.2 μCLinux内核参数针对具体硬件电路的改动 206
6.3.3 编译μCLinux内核 207
6.3.4 内核的加载运行 209
6.4 在μCLinux下开发应用程序 210
6.4.1 一个简单程序的开发 210
6.4.2 添加应用程序到μCLinux操作系统中 211
第7章 综合举例 215
7.1 便携式电子邮件收发装置 215
7.1.1 系统总体方案的设计 215
7.1.2 μCLinux开发 218
7.1.3 电子邮件的收取 231
7.1.4 电子邮件的发送 236
7.1.5 系统测试 239
7.1.6 系统的改进 241
7.2 家庭智能报警系统 242
7.3 停车场IC卡智能收费系统 247
7.3.1 系统的硬件结构 248
7.3.2 系统的软件结构 259
7.3.3 系统的完善和改进 261
参考文献 262