第一章 嵌入式系统概述 1
第一节 嵌入式系统的基本概念 1
一、嵌入式系统定义 1
二、嵌入式系统的特点 2
三、嵌入式系统的发展 3
第二节 嵌入式处理器 6
一、嵌入式微处理器分类 6
二、嵌入式微处理器 10
三、ARM微处理器 11
第三节 嵌入式系统的组成 14
一、嵌入式系统的硬件组成 15
二、嵌入式系统的软件组成 16
第四节 嵌入式操作系统 16
一、嵌入式操作系统 16
二、嵌入式实时操作系统 17
三、几种主要嵌入式操作系统 18
四、嵌入式操作系统的基本功能 21
第二章 ARM9体系结构 22
第一节 ARM嵌入式处理器 22
第二节 ARM微处理器体系结构和特点 24
一、ARM7微处理器系列 24
二、ARM9微处理器系列 25
三、ARM9E微处理器系列 26
四、ARM10E微处理器系列 27
五、SecurCore微处理器系列 28
六、StrongARM微处理器系列 28
七、Xscale处理器 29
第三节 存储器管理 31
第四节 ARM微处理器的工作状态 31
一、Thumb状态 31
二、ARM状态 32
第五节 ARM体系结构的存储器格式 32
一、大端格式 33
二、小端格式 33
第六节 ARM处理器工作模式 33
第七节 ARM寄存器组 34
一、ARM寄存器 34
二、通用寄存器 37
第八节 ARM处理器异常 40
一、ARM处理器异常类型 40
二、异常响应 42
三、异常返回 43
四、异常进入/退出 43
五、异常向量表 44
六、异常优先级 44
七、各类异常的具体描述 45
第九节 内核扩展 48
一、cache和紧耦合存储器 49
二、存储管理 50
三、协处理器 51
第十节 流水线 52
一、流水线 52
二、ARM9流水线 52
第三章 ARM9指令集 54
第一节 ARM处理器的指令分类与格式 54
第二节 ARM处理器寻址方式 56
一、立即寻址 56
二、寄存器寻址 56
三、寄存器间接寻址 57
四、基址变址寻址 57
五、多寄存器寻址 58
六、相对寻址 59
七、堆栈寻址 59
八、寄存器移位寻址 60
第三节 ARM指令集 60
一、ARM数据处理指令 60
二、跳转指令 68
三、ARM存储器访问指令 70
四、数据交换指令 73
五、移位指令 74
六、软件中断指令 76
七、协处理器指令 78
第四节 ARM汇编语言伪指令 80
一、ADR小范围的地址读取伪指令 81
二、ADRL中等范围的地址读取伪指令 81
三、LDR大范围的地址读取伪指令 82
四、NOP空操作伪指令 83
第五节 THUMB指令集合 83
一、转移指令 84
二、数据处理指令 84
三、单寄存器Load和Store指令 84
四、多寄存器Load和Store指令 84
第四章 嵌入式系统开发 86
第一节 嵌入式系统开发过程 86
一、嵌入式系统开发流程 86
二、嵌入式系统调试 87
三、嵌入式系统交叉开发环境 88
第二节 ADS集成开发环境 90
一、命令行开发工具 90
二、ARM运行时库 91
三、GUI development tools 94
第三节 使用ADS创建工程 95
一、新建工程 95
二、配置新建工程,生成目标 98
三、编译连接工程 102
第四节 AXD工程调试 103
一、调试工具条 103
二、程序的在线仿真、调试 104
第五节 MULTI-ICE仿真器应用 106
第六节 超级终端的使用 107
第五章 嵌入式系统基础实验 110
第一节 S3C2410X嵌入式开发板介绍 110
一、S3C2410X介绍 110
二、各部分详细介绍 112
第二节 汇编程序设计及调试实验 116
一、实验内容 116
二、实验步骤 116
三、参考程序 118
第三节 汇编与C语言混合程序设计及调试实验 119
一、实验内容 119
二、汇编语言与C/C++的混合编程 119
三、实验步骤 121
四、实验参考程序 123
第四节 发光二极管LED显示实验 124
一、实验内容 124
二、BIN文件的产生 124
三、跑马灯原理 126
四、操作步骤 128
五、参考程序 130
第五节 S3C2410X的RTC实时时钟实验 130
一、实验内容 130
二、实验步骤 131
三、RTC实时时钟原理 131
四、参考程序 133
第六节 FLASH芯片的烧录 134
一、建立硬件环境 134
二、步骤 135
三、芯片的烧录 135
第六章 ARM Linux开发环境的建立 137
第一节 交叉编译 137
第二节 VMware-workstation使用 138
一、VMware主要的功能 138
二、在VMware-workstation中安装Red Hat Linux 9过程 138
第三节 RED HAT Linux9的安装 140
第四节 宿主机配置 147
一、开发软件 147
二、配置minicom 147
三、配置TFTP 148
四、配置NFS服务 149
第七章 ARM Linux移植 151
第一节 Bootloader介绍 151
第二节 PPCboot 152
第三节 Bootloader vivi介绍 153
第四节 编译Linux内核 156
第五节 文件系统 159
一、Linux文件系统介绍 159
二、制作ramdisk根文件系统的映像 162
第八章 ARM实例 165
第一节 Linux驱动程序功能与编写 165
一、Linux驱动设备 165
二、Linux驱动编写 166
三、驱动模块的安装卸载与调用 168
第二节 I/O端口实验 169
一、I/O实验内容及相关知识 170
二、I/O电路原理 177
三、I/O实验参考 177
四、I/O实验Linux下驱动的编写介绍 179
第三节 串口实验 183
一、串口相关知识 183
二、S3C2410X串行口控制器 188
三、串口实验参考 194
第四节 IIC实验 201
一、IIC总线介绍 201
二、IIC EEPROM读/写 208
三、实验参考 211
第五节 SPI实验-数码管 216
一、SPI总线介绍 216
二、SPI接口寄存器 218
三、LED数码管原理 220
四、74LV164介绍 222
五、实验参考 224
六、Linux下程序参考 226
第六节 A/D实验 231
一、A/D转换的基本原理 231
二、S3C2410X的A/D转换器 232
三、A/D实验参考 233
四、A/D在Linux驱动参考 235
第七节 中断实验 240
一、中断基本知识 240
二、Linux下中断驱动编程所要掌握的函数 246
三、中断实验参考 249
附录 S3C2410引脚 254
参考文献 259