第1章 嵌入式系统概论 1
1.132位嵌入式系统简介 1
1.232位嵌入式处理器 3
1.2.1ARM嵌入式处理器 3
1.2.2其他类型嵌入式处理器 4
1.3嵌入式操作系统 5
1.4嵌入式系统开发流程 7
1.5习题 8
第2章 ARM7TDMI处理器编程基础 9
2.1ARM7TDMI内核架构 9
2.1.1ARM7TDMI内核特点 10
2.1.2处理器工作状态 11
2.1.3处理器数据存储格式 11
2.1.4处理器数据类型和长度 12
2.1.5处理器模式 13
2.1.6寄存器组织 13
2.1.7程序状态寄存器 15
2.1.8异常模式 17
2.1.9存储管理单元(MMU) 20
2.2ARM指令系统 22
2.2.1ARM指令寻址方式 22
2.2.2ARM指令集 23
2.3嵌入式系统程序设计 30
2.3.1伪指令介绍 30
2.3.2汇编语言编程 32
2.3.3C语言编程 33
2.3.4混合语言编程 35
2.4ARM嵌入式开发工具ADS 35
2.4.1ADS概述 35
2.4.2ADS开发流程 38
2.4.3ADS开发实例 38
2.5本章实验 52
2.5.1实验一ADS使用与汇编指令实验 52
2.5.2实验二汇编语言和C语言的混合编程 55
2.6习题 57
第3章 嵌入式系统硬件开发 59
3.1S3C4510B处理器概述 59
3.1.1S3C4510B芯片特点 59
3.1.2S3C4510B引脚描述 60
3.2实验板硬件系统开发 66
3.2.1实验板硬件系统概述 67
3.2.2电源电路 71
3.2.3复位电路 71
3.2.4晶振电路 72
3.2.5处理器电路 74
3.2.6JTAG调试电路 75
3.2.7SDRAM存储器电路 76
3.2.8Flash存储器电路 77
3.2.9输入/输出电路 79
3.2.10RS-232串口通信电路 82
3.2.11以太网接口电路 83
3.2.12字符型LCD显示电路 85
3.2.13步进电动机电路 85
3.3硬件系统测试 87
3.3.1电源、复位、晶振电路测试 88
3.3.2处理器与JTAG接口电路测试 88
3.3.3SDRAM存储器测试 90
3.3.4Flash存储器测试 98
3.4硬件系统开发流程与要点 102
3.4.1硬件开发流程 102
3.4.2硬件设计要点 102
3.5本章实验 104
3.5.1实验三LED控制混合编程 104
3.5.2实验四UART串口通信混合编程 108
3.6习题 116
第4章 无操作系统的应用软件开发 119
4.1软件开发数据流向图 119
4.2无操作系统的软件运行模式 120
4.3软件系统开发概述 123
4.4嵌入式系统引导程序 125
4.4.1BootLoader概述 125
4.4.2S3C4510B编址空间和存储器映射 125
4.4.3BootLoader启动过程分析 132
4.5无操作系统下单任务应用程序开发 140
4.5.1应用程序调试阶段 140
4.5.2应用程序调试完成阶段 142
4.6固化程序到Flash存储器 146
4.6.1使用H-JTAG烧写Flash 146
4.6.2编写Flash烧写程序烧写Flash 147
4.7本章实验 152
4.7.1实验五烧写添加LED应用程序后的BootLoader到Flash 152
4.7.2实验六通过GPIO控制步进电动机实验 159
4.7.3实验七通过总线和中断控制步进电动机 164
4.8习题 169
第5章 有操作系统的嵌入式系统软件开发 171
5.1有操作系统的嵌入式系统软件开发概述 171
5.2有操作系统的软件运行模式 174
5.3uClinux操作系统概述 176
5.4建立开发环境 177
5.4.1建立主机Linux平台 177
5.4.2开发中常用Linux命令与vi编辑器 181
5.4.3安装交叉编译工具 183
5.5uClinux裁剪与编译 184
5.5.1uClinux内核文件结构 184
5.5.2Shell简介 185
5.5.3使用make和Makefile 186
5.5.4裁剪uClinux内核并编译生成映像文件 189
5.6操作系统下多任务应用程序开发 193
5.6.1编写串口、LED应用程序 195
5.6.2添加应用程序至内核 196
5.6.3操作系统下应用程序的调试 200
5.7固化操作系统到Flash存储器 202
5.8本章实验 202
5.8.1实验八Linux使用 202
5.8.2实验九uClinux内核编译与下载 204
5.8.3实验十uClinux多任务编程与自启动 206
5.9习题 211
第6章 嵌入式Linux设备驱动 213
6.1驱动程序开发概述 213
6.1.1驱动程序原理 213
6.1.2驱动程序开发流程 214
6.2驱动程序运行模式 215
6.3驱动程序编写模板与实现方式 215
6.3.1驱动程序编写模板 215
6.3.2驱动程序实现方式 215
6.4驱动程序开发实例 218
6.4.1设备文件分类和设备号 219
6.4.2用户空间和内核空间 219
6.4.3设备驱动程序的file_operations结构 219
6.4.4设备驱动程序常用函数和使用方法 220
6.4.5编写LED驱动程序 221
6.4.6添加LED驱动程序至操作系统内核 222
6.4.7驱动程序调试方法 225
6.5本章实验 226
6.5.1实验十一编写LCD驱动程序 226
6.5.2实验十二编写步进电动机驱动程序(连接到GPIO口) 234
6.5.3实验十三编写步进电动机驱动程序(连接到总线和中断输入口) 238
6.6习题 244
附录A ARM指令速查表 245
附录B 习题参考答案 249
B.1第1章习题答案 249
B.2第2章习题答案 250
B.3第3章习题答案 251
B.4第4章习题答案 252
B.5第5章习题答案 254
B.6第6章习题答案 255
附录C U-Boot移植 257
C.1几种通用BootLoader简介 257
C.1.1Redboot 257
C.1.2Blob 257
C.2U-Boot简介 257
C.2.1U-Boot概述 257
C.2.2U-Boot命令 258
C.2.3U-Boot重要代码 258
C.2.4U-Boot编译过程 261
C.2.5U-Boot移植 262
参考文献 265