内容简介
第1篇 ARM处理器基础知识
第1章 嵌入式系统开发介绍
1.1嵌入式系统介绍
1.1.1嵌入式系统概念
1.1.2重要组成部分
1.2嵌入式系统的组成
1.2.1通用设备接口和1/O接口
1.2.2中间层
1.2.3系统软件层
1.3嵌入式系统的优点及特点
1.3.1嵌入式系统的优点
1.3.2嵌入式系统的特点
1.4嵌入式处理器
1.4.1嵌入式微处理器
1.4.2嵌入式微控制器
1.4.3嵌入式DSP处理器
1.4.4 SoC——片上系统
1.5嵌入式操作系统
1.5.1操作系统包含的功能
1.5.2嵌入式操作系统的特点
1.5.3嵌入式操作系统的分类
1.5.4嵌入式技术应用及发展趋势
1.6嵌入式技术发展趋势
1.7小结
第2章 ARM处理器概述
2.1 ARM处理器介绍
2.2 ARM体系结构的版本和变量
2.2.1 ARM体系结构的版本
2.2.2 ARM体系结构的变量
2.2.3 ARM/Thumb体系结构版本命名
2.3 ARM处理器的命名规则
2.4 ARM处理器结构
2.4.1 RISC中的关键技术
2.4.2 ARM和Thumb状态
2.4.3 ARM寄存器
2.4.4 ARM指令集概述
2.4.5 Thumb指令集概述
2.5 ARM处理器系列
2.5.1 ARM7系列
2.5.2 ARM9系列
2.5.3 ARM9E系列
2.5.4 ARM10E系列
2.5.5 ARM11系列
2.5.6 SecurCore系列
2.5.7 XScale系列
2.5.8 StrongARM系列
2.5.9 Cortex系列
2.6小结
第3章 ARM9处理器与编程模型
3.1 ARM9处理器产品
3.1.1 ARM9进步之处
3.1.2操作指令
3.1.3 ARM9产品举例
3.1.4 ARM9E系列微处理器
3.2 ARM9编程模型
3.2.1 ARM9数据类型
3.2.2 ARM9体系结构的存储器格式
3.2.3 ARM9处理器的工作状态
3.2.4 ARM9处理器模式
3.2.5 ARM寄存器
3.2.6异常
3.3小结
第4章 ARM指令集与寻址方式
4.1指令集编码
4.2条件执行
4.3指令分类及指令格式
4.3.1数据处理指令
4.3.2 Load/Store指令
4.3.3程序状态寄存器与通用寄存器之间的传送指令
4.3.4转移指令
4.3.5异常中断指令
4.3.6协处理器指令
4.3.7乘法指令
4.3.8伪指令
4.4 ARM基本寻址方式
4.4.1立即寻址
4.4.2寄存器寻址
4.4.3寄存器间接寻址
4.4.4基址变址寻址
4.4.5基址加偏址寻址
4.4.6堆栈寻址
4.4.7块复制寻址
4.4.8相对寻址
4.5小结
第5章 Thumb指令集
5.1 Thumb指令集概述
5.2 Thumb寄存器和ARM寄存器之间的关系
5.3 Thumb指令集分类介绍
5.3.1存储器指令
5.3.2数据处理指令
5.3.3分支指令
5.3.4中断和断点指令
5.4小结
第2篇 S3C2440嵌入式系统基础
第6章 GPIO接口
6.1 GPIO硬件介绍
6.1.1 GPxCON寄存器
6.1.2 GPxDAT寄存器
6.1.3 GPxUP寄存器
6.2软件访问硬件
6.2.1访问单个引脚
6.2.2以总线方式访问硬件
6.2.3软件如何读写GPIO
6.3 LED的GPIO接口实例
6.4小结
第7章 存储器控制器
7.1概述
7.2功能描述
7.2.1 bank0总线宽度设置
7.2.2 nWAIT引脚操作
7.2.3 nXBREQ/nXBACK引脚操作
7.3存储器接口实例
7.3.1 ROM存储器接口实例
7.3.2 SRAM存储器接口实例
7.3.3 SDRAM存储器接口实例
7.3.4可编程存储器访问周期
7.4存储器控制寄存器
7.4.1总线宽度和等待控制寄存器
7.4.2 bank控制寄存器
7.4.3刷新控制寄存器
7.4.4 banksize寄存器
7.4.5模式寄存器集寄存器
7.5存储器实例
7.6小结
第8章 MMC/SD/SDIO控制器
8.1概述
8.2 SD操作
8.3特殊寄存器
8.4 SD实例
8.5小结
第9章 Nand Flash控制器
9.1 Nand Flash介绍及其控制器使用
9.1.1 Flash
9.1.2 Nand Flash的物理结构
9.1.3 Nand Flash的访问方法
9.2 S3C2440 Nand Flash控制器
9.2.1操作方法概述
9.2.2寄存器介绍
9.3 Nand Flash控制器实例
9.4小结
第10章 系统时钟和定时器
10.1 S3C2440时钟体系和电源管理模块
10.1.1功能描述
10.1.2电源管理
10.1.3特殊寄存器
10.2 PWM及定时器
10.2.1特点
10.2.2脉宽调制定时器特殊寄存器
10.3实时时钟
10.3.1特点
10.3.2实时时钟操作
10.3.3实时时钟特殊寄存器
10.4看门狗定时器
10.4.1特点
10.4.2看门狗定时器操作
10.4.3看门狗定时器特殊寄存器
10.5小结
第11章 中断控制器
11.1概述
11.2中断控制器操作
11.3中断控制器特殊寄存器
11.4中断方式键盘扫描实例
11.5小结
第12章 UART
12.1概述
12.2 UART操作
12.3特殊寄存器
12.4 UART实例
12.5小结
第13章 串行外围设备接口
13.1概述
13.1.1 SPI相关概念
13.1.2 S3C2440A的SPI
13.2 SPI操作方法
13.2.1编程步骤
13.2.2传输格式
13.3 SPI特殊寄存器
13.4 SPI使用实例
13.5小结
第14章 ADC和触摸屏接口
14.1概述
14.2特点
14.3 ADC及触摸屏接口操作
14.4功能描述
14.4.1 AD转换时间
14.4.2触摸屏接口模式
14.4.3编程细节
14.5 ADC及触摸屏接口特殊寄存器
14.5.1 ADC控制寄存器
14.5.2 ADC触摸屏控制寄存器
14.5.3 ADC开始延时寄存器
14.5.4 ADC转换数据寄存器0
14.5.5 ADC转换数据寄存器1
14.5.6 ADC触摸屏指针上下中断检测寄存器
14.6 ADC驱动程序及测试程序
14.6.1三通道ADC驱动程序
14.6.2三通道ADC采样测试程序
14.7小结
第3篇 建立ARM9嵌入式开发环境
第15章 无操作系统的ARM9开发方法
15.1硬件开发
15.2软件开发
15.2.1软件开发基础
15.2.2软件开发方法
15.3使用EWARM进行无操作系统开发
15.4 EWARM使用实例
15.5小结
第16章 嵌入式Linux开发环境的搭建
16.1嵌入式Linux概述
16.2嵌入式Linux常用工具
16.2.1交叉编译工具
16.2.2 vim编辑器
16.2.3 Linux编译器gcc及编译工具
16.2.4 Makefile和Make命令
16.2.5 GNU调试工具
16.2.6 Linux内核编译
16.3建立micro2440开发板的Linux开发环境
16.3.1 Fedora 9.0安装步骤
16.3.2解压安装源代码及其他工具
16.3.3配置网络文件系统NFS服务
16.4小结
第17章 SkyEye环境搭建
17.1 SkyEye概述
17.1.1 SkyEye的特点
17.1.2 SkyEye的配置
17.1.3 SkyEye的使用指南
17.2环境搭建
17.2.1 Linux操作系统安装和配置
17.2.2交叉编译环境安装
17.3 SkyEye测试
17.3.1 SkyEye-testsuite-1.3.0_rcl测试包
17.3.2测试U-Boot
17.3.3测试μClinux
17.3.4测试μClinux的网络功能
17.3.5手工编译μClinux内核
17.4小结
第4篇 ARM9嵌入式Linux系统移植
第18章 BootLoader移植
18.1 BootLoader简介
18.1.1 BootLoader概述
18.1.2 BootLoader的安装媒介
18.1.3 BootLoader支持的体系结构
18.1.4 BootLoader的启动过程和操作模式
18.1.5 BootLoader的常见种类
18.2 U-Boot移植
18.2.1 U-Boot简介
18.2.2 U-Boot源码结构
18.2.3 U-Boot启动过程
18.2.4 U-Boot的编译过程
18.2.5 U-Boot移植
18.2.6 U-Boot移植实例
18.2.7 U-Boot常用命令
18.2.8 U-Boot命令启动Linux内核
18.3小结
第19章 Linux内核移植
19.1 Linux内核的基本概念
19.1.1 Linux内核版本和分类
19.1.2 Linux的体系结构
19.2内核启动
19.2.1 BootLoader启动过程
19.2.2 Linux启动过程
19.2.3建立目标板Linux的基本步骤
19.2.4 Linux内核的配置和编译
19.2.5 Linux内核的Kconfig及Makfile分析
19.3 Linux内核移植实例
19.4小结
第20章 构建Linux文件系统
20.1 Linux根文件系统概述
20.1.1 Linux文件系统的目录结构
20.1.2嵌入式Linux文件系统的常见类型
20.2 BusyBox制作根文件系统
20.2.1 BusyBox安装
20.2.2 BusyBox工作原理
20.2.3 BusyBox制作文件系统
20.3小结
第5篇 ARM9嵌入式应用开发实例
第21章 基于Qt的嵌入式GUI开发
21.1嵌入式GUI概述
21.1.1嵌入式GUI的发展状况
21.1.2基于ARM处理器的嵌入式Linux开发方法
21.2 Qt程序移植
21.2.1 Linux操作系统
21.2.2软件开发环境Qt4
21.2.3软件平台建立
21.3计算器实例
21.4小结
第22章 基于ARM9与QTE4的数据采集图形界面设计
22.1 micro2440开发板概述
22.2多通道AD驱动
22.2.1 Linux设备驱动
22.2.2多通道AD驱动
22.2.3 AD驱动编译进内核
22.2.4 AD采样程序设计
22.3图形界面设计及移植
22.3.1主界面设计
22.3.2曲线绘制的设计
22.3.3整体工作流程及程序移植
22.3.4测试
22.4主界面控制程序
22.5小结
第23章 基于ARM9及QTE4的图像处理
23.1 ARM9与图像处理
23.2 OpenCV库编译及移植
23.2.1 Linux下OpenCV编译安装
23.2.2 ARM版OpenCV编译安装
23.3在Qt软件添加OpenCV连接库
23.3.1动态连接库与静态连接库
23.3.2 Qt软件添加OpenCV库
23.3.3 OpenCV库中的IplImage类型与Qt的QImage类型转换
23.4基于ARM9和OpenCV图像边缘提取实例
23.5小结