第1章 嵌入式系统概述 1
1.1 嵌入式系统应用概述 1
1.2 常见的处理器概述 2
1.2.1 微控制器 2
1.2.2 数字信号处理器 2
1.2.3 微处理器 3
1.2.4 片上系统 3
1.2.5 处理器技术的选型 3
1.3 操作系统概述 5
1.3.1 操作系统主要特点及功能 5
1.3.2 常用嵌入式操作系统 6
本章总结 9
课后习题 9
第2章 嵌入式ARM处理器 10
2.1 ARM处理器概述 10
2.2 ?件体系结构 14
2.2.1 ?诺依曼体系和哈佛总线 14
2.2.2 CISC和RISC指令集 15
2.2.3 ARM处理器的指令流水线 15
2.3 ARM处理器内部结构 16
2.3.1 ARM7内部结构图及主要特点 17
2.3.2 ARM7功能结构图 17
2.3.3 ARM9内部及功能结构图 18
2.3.4 XScale内部结构及功能 20
本章总结 22
课后习题 22
第3章 ARM程序设计基础 23
3.1 ARM处理器工作模式及寄存器介绍 24
3.1.1 ARM处理器工作模式 24
3.1.2 ARM处理器寄存器介绍 25
3.1.3 ARM指令编码方式 31
3.2 ARM寻址方式 33
3.3 ARM指令及应用程序设计 35
3.3.1 加减法指令及例程 35
3.3.2 逻辑指令及例程 39
3.3.3 乘法指令及例程 41
3.3.4 跳转指令及例程 44
3.3.5 内存数据加载指令及例程 45
3.3.6 CPSR数据传输指令及例程 50
3.3.7 数据交换指令及例程 52
3.4 ARM伪指令及应用程序举例 53
3.4.1 符号定义伪指令及例程 53
3.4.2 数据定义伪指令及例程 55
3.4.3 控制伪指令及例程 56
3.4.4 地址加载伪指令及例程 58
3.4.5 声明引用伪指令及例程 59
3.4.6 段域伪指令及例程 61
3.5 ARM汇编程序设计示例 63
3.5.1 ARM汇编程序结构示例 63
3.5.2 数据加载ARM汇编程序示例 63
3.5.3 ARM分支跳转程序示例 64
3.5.4 ARM数据段复制程序示例 65
本章总结 66
课后习题 67
第4章 ADS环境下汇编/C/C++程序开发 68
4.1 嵌入式软件开发平台ADS1.2应用 68
4.1.1 ADS开发平台简介 68
4.1.2 ARM命令参数说明 69
4.1.3 可执行文件结构及内存映射 71
4.1.4 使用ADS集成ARM程序开发流程 73
4.1.5 使用ADS调试程序实例 80
4.2 C语言内嵌汇编应用程序开发 82
4.2.1 内嵌汇编程序结构 82
4.2.2 内链汇编实现字符串复制 83
4.2.3 内链汇编禁止和使能中断请求 84
4.2.4 内链汇编实现64位乘法 84
4.3 C程序与汇编程序汇合编程 86
4.3.1 无符号整型数到字符串的转换程序 86
4.3.2 简单除法运算程序 90
4.3.3 产生及测试伪随机数字序列程序 98
4.3.4 大端和小端存储转换程序 100
4.4 ARM过程调用标准APCS 103
4.4.1 APCS基本概念 103
4.4.2 寄存器命名规则 104
4.4.3 函数调用参数传递及返回 104
本章总结 105
课后习题 105
第5章 嵌入式系统结构及软件开发模式 106
5.1 嵌入式系统软、硬件结构 106
5.1.1 嵌入式系统硬件结构 106
5.1.2 嵌入式系统软件结构 108
5.1.3 通用计算机系统与嵌入式系统对比 109
5.2 嵌入式软件开发工具及开发模式 109
5.2.1 常用嵌入式系统软件开发工具 109
5.2.2 带BootLoader系统软件开发实例 111
本章总结 113
课后习题 114
第6章 ARM异常中断处理及程序设计 115
6.1 ARM中断类型及处理方式 115
6.1.1 Reset异常及处理 117
6.1.2 未定义指令异常及处理 117
6.1.3 软中断异常及处理 118
6.1.4 预取指异常及处理 118
6.1.5 数据异常及处理 119
6.1.6 IRO异常及处理 119
6.1.7 FIQ异常及处理 120
6.1.8 中断向量总结及优先级 120
6.2 ARM处理器中断处理程序设计 121
6.2.1 进入与退出中断异常 121
6.2.2 装载中断处理程序地址程序开发 121
6.3 SWI中断处理原理及应用程序开发 123
6.3.1 SWI中断处理的基本概念 123
6.3.2 SWI中断处理程序设计 125
本章总结 128
课后习题 129
第7章 嵌入式系统接口及驱动程序开发 130
7.1 ARM9串行通信原理及驱动开发实验 130
7.1.1 串行通信原理介绍 130
7.1.2 S3C2410芯片UART接口原理 134
7.1.3 S3C2410串?电路设计 142
7.1.4 串行通信实验C语言源代码分析 142
7.2 键盘及LED工作原理、驱动开发实验 144
7.2.1 键盘及LED工作原理 144
7.2.2 I2C通信原理及驱动程序开发流程 147
7.2.3 S3C2410处理器I2C接口设计 148
7.2.4 ZLG7290键盘及LED驱动芯片 152
7.2.5 S3C2410采用I2C接口电路 157
7.2.6 键盘及LED实验C语言源代码分析 158
7.3 触摸屏驱动原理及驱动开发实验 161
7.3.1 触摸屏工作原理 162
7.3.2 ADS7843触摸屏驱动芯片 163
7.3.3 S3C2410芯片的SPI通信原理 165
7.3.4 S3C2410触摸屏电路设计 169
7.3.5 触摸屏实验C语言源代码分析 170
7.4 A/D(模/数)转换原理及驱动开发 173
7.4.1 A/D工作原理 173
7.4.2 S3C2410芯片A/D转换接口原理 176
7.4.3 A/D实验源代码分析 178
7.5 LCD的驱动控制原理及驱动开发实验 179
7.5.1 LCD工作原理介绍 179
7.5.2 S3C2410的LCD控制器扫描方式 181
本章总结 183
课后习题 183
第8章 基于μC/OS-Ⅱ应用程序开发基础 184
8.1 实时操作系统应用地位 184
8.1.1 实时操作系统在嵌入式系统中的地位 184
8.1.2 嵌入式操作系统基本概念 186
8.2 μC/OS-Ⅱ操作系统结构分析 187
8.2.1 μC/OS-Ⅱ内核目录结构 187
8.2.2 μC/OS-Ⅱ任务管理源代码分析 191
8.2.3 μC/OS-Ⅱ任务通信方式简介 196
8.3 开发基本ARM处理器的μC/OS-Ⅱ应用程序 200
8.3.1 μC/OS-Ⅱ操作系统底层文件介绍 200
8.3.2 与处理器相关的OS_CPU.H文件源码分析 201
8.3.3 与处理器相关的OS_CPU_C.C文件源码分析 202
8.3.4 与处理器相关的OS_CPU_A.S文件源码分析 206
本章总结 212
课后习题 212
第9章 ARM存储管理 214
9.1 存储设备概念 214
9.1.1 常见存储设备名词解析 215
9.1.2 RAM存储设备 215
9.1.3 NAND Flash和NOR Flash存储设备 216
9.2 ARM内存管理单元MMU 217
9.2.1 存储器管理单元的结构 217
9.2.2 存储器的访问 218
9.2.3 转换过程 219
9.2.4 访问权限 225
9.2.5 域 226
9.2.6 异常 226
9.2.7 CP15寄存器 229
本章总结 233
课后习题 233
参考文献 234