第1章 概述 1
1.1什么是嵌入式系统 1
1.1.1嵌入式系统的特点 2
1.1.2嵌入式系统的应用领域 3
1.1.3嵌入式系统的应用现状 4
1.2嵌入式处理器 5
1.2.1嵌入式处理器的类型 5
1.2.2嵌入式处理器的应用发展趋势 6
1.3嵌入式操作系统 7
1.3.1嵌入式系统应用软件的特点 7
1.3.2嵌入式操作系统 7
1.4嵌入式项目或产品的开发流程 12
1.5嵌入式项目或产品开发的知识结构 12
第2章 ARM处理器的编程结构与工作方式 13
2.1 ARM嵌入式处理器概况及进展 13
2.1.1 ARM公司及其产品简况 13
2.1.2 ARM处理器中的新技术 16
2.2计算机体系结构中的一些有关概念 18
2.2.1 CISC与RISC 18
2.2.2冯·纽曼(Von Neuman)结构和哈佛(Harvard)结构 20
2.3 ARM处理器的内部编程结构 23
2.3.1 ARM7TDMI应用内核的结构及引出信号线 23
2.3.2 ARM内核编程结构要素 25
2.3.3 ARM内核的寄存器组织 29
2.4 ARM体系结构中的异常 34
2.4.1 ARM体系结构所支持的异常类型 34
2.4.2 ARM处理器对异常的响应过程 35
2.4.3异常向量表 36
2.4.4从异常返回 36
2.4.5各类异常有关说明 37
2.4.6异常优先级(Exception Priorities) 40
习题与思考题 40
第3章 ARM处理器的指令系统 41
3.1 ARM微处理器的寻址方式 41
3.1.1立即寻址 42
3.1.2寄存器寻址 42
3.1.3单存储器数据寻址(位于存储器中的单字节、单字、半字等单个数据的寻址) 43
3.1.4多寄存器寻址 44
3.1.5堆栈寻址及其若干模式 46
3.2 ARM微处理器指令集概述 48
3.2.1 ARM微处理器指令的分类与格式 48
3.2.2 ARM微处理器指令的机器码结构 51
3.3 ARM指令集 58
3.3.1数据传输类指令 58
3.3.2转移类指令 70
3.3.3算术运算类指令 73
3.3.4逻辑运算类指令 79
3.3.5移位操作 81
3.3.6协处理器指令 83
3.3.7异常产生指令 86
3.4 ARM指令运用举例 87
3.4.1算数和逻辑运算指令 87
3.4.2 Load/Store指令 90
习题与思考题 91
第4章 ARM程序设计基础 93
4.1 ARM汇编语言的格式 93
4.1.1汇编语言的程序结构概貌 93
4.1.2 ARM汇编语言的语句格式 94
4.1.3汇编语言程序中的用户定义符号 94
4.2 ARM汇编器所支持的伪指令 96
4.2.1变量定义(Variable Definition)伪指令 96
4.2.2数据定义(Data Definition)伪指令 98
4.2.3汇编控制(Assembly Control)伪指令 101
4.2.4其他常用伪指令 104
4.3汇编语言程序中的表达式和运算符 109
4.4汇编语言的子程序调用 112
4.4.1子程序调用中的数据格式约定 112
4.4.2子程序调用中的寄存器功能约定 113
4.4.3汇编语言子程序调用中的参数传递及堆栈运用规则 114
4.4.4子程序调用中的结果返还规则 114
4.4.5 ARM汇编语言子程序调用方法 115
4.5汇编语言程序示例 116
4.5.1排序(降序冒泡排序) 116
4.5.2在列表中查找指定数据 116
4.5.3两个32位数相乘得64位结果 117
4.5.4两个压缩BCD码数相加得到一个压缩BCD码结果(超出32位部分略去) 118
4.5.5在若干个16位数中查找最大值 119
4.5.6将8个十六进制数转换为对应的ASCII码字符串 120
习题与思考题 121
第5章 嵌入式系统中的存储器 123
5.1微机中常用半导体存储器的类型 123
5.1.1只读存储器ROM的类型 123
5.1.2可读写存储器RAM的类型 124
5.2常用静态RAM及其与CPU的接口方法 125
5.3动态存储器DRAM 127
5.3.1动态存储器的类型及结构特征 127
5.3.2动态存储器构建微机内存的方法 129
5.3.3 SDRAM的内部结构及外部引脚 130
5.3.4 SDRAM的工作特点 132
5.3.5 SDRAM的工作时序 137
5.3.6嵌入式系统中有关SDRAM的配置选项 137
5.4嵌入式系统中的Flash ROM存储器 138
5.4.1 NOR Flash ROM存储器的结构及操作特点 139
5.4.2一款常用的NOR Flash存储器SST39VF1601 143
5.4.3 NOR Flash的读/擦除/写等操作的程序实现 147
5.4.4 NAND Flash ROM存储器的结构及使用 153
5.4.5 NAND Flash的读/擦除/写等操作程序实现 160
5.4.6 NOR/NAND混合式Flash存储器简介 163
习题与思考题 165
第6章 S3C44B0系统组成及核心电路编程结构 166
6.1 S3C44B0的编程结构及引脚功能 166
6.1.1 S3C44B0的内部编程结构 166
6.1.2 S3C44B0的外部引脚类型 167
6.2 S3C44B0的存储空间及存储器接口电路设计 171
6.2.1 S3C44B0的存储空间 171
6.2.2 S3C44B0与外部存储器的接口设计 175
6.2.3 S3C44B0的存储器管理及配置寄存器 179
6.2.4 S3C44B0X的特殊功能寄存器区 183
6.3嵌入式处理器中的Cache及写缓冲寄存器 191
6.3.1嵌入式处理器中的Cache结构及工作原理 191
6.3.2非Cache区域 196
6.3.3内部SRAM 196
6.3.4写缓冲区操作 197
6.3.5总线优先级 198
6.3.6内部存储器区的设置寄存器 198
6.3.7 Cache的设置程序例 200
习题与思考题 201
第7章 S3C44B0内部集成的部分外设电路及其编程结构 203
7.1 S3C44B0X的时钟和功耗管理单元 203
7.1.1 S3C44B0X的时钟管理模式 203
7.1.2时钟和功耗管理相关寄存器 205
7.1.3时钟和功耗管理相关寄存器初始化编程举例 208
7.2 S3C44B0的通用输入/输出口GPIO 209
7.2.1各组端口的功能 209
7.2.2各组端口配置的寄存器及功能选择 212
7.2.3 GPIO应用编程例 217
7.3 S3C44B0的中断系统 221
7.3.1 S3C44B0X的中断源 221
7.3.2 S3C44B0的中断响应模式 224
7.3.3用于中断逻辑管理的寄存器 234
7.3.4中断系统应用编程例 245
7.4 S3C44B0的定时器及脉宽调制器PWM 252
7.4.1定时器与PWM的基本结构 252
7.4.2 PWM定时器的编程设置过程 259
7.4.3 PWM定时器的寄存器组及位域功能 261
7.4.4 PWM定时器应用编程例 267
7.4.5一种特殊的定时器——看门狗定时器 275
7.5 S3C44B0的异步串行接口UART 278
7.5.1异步串行通信数据格式及工作原理 278
7.5.2 UART的中断及DMA工作模式 286
7.5.3 UART波特率设置 287
7.5.4 UART的寄存器组及设置 288
7.5.5 UART应用编程例 294
习题与思考题 304
第8章 Boot Loader的结构及实例分析 306
8.1 Boot Loader简介 306
8.2 Boot Loader实例分析 309
8.2.1 U-Boot的主要特点 309
8.2.2 U-Boot运行过程分析 310
8.2.3 U-Boot代码结构及主要函数功能 312
8.2.4 U-Boot主要命令 320
8.2.5 U-Boot在S3C44B0的移植过程 325
习题与思考题 329
第9章 ARM处理器应用电路的开发环境及JTAG调试机理 329
9.1 ARM处理器的软件开发方法及开发环境 329
9.1.1 ARM应用电路调试方法概述 329
9.1.2 JTAG电路原理及JTAG简易调试器 331
9.1.3简易JTAG调试器的信号连接方法 333
9.2 ARM处理器集成开发环境ADS 1.2简介 336
9.2.1 ADS 1.2集成开发环境组成简介 336
9.2.2 ADS1.2集成开发环境的基本操作 337
习题与思考题 345
参考文献 346