第1章ARM处理器概述
1.1 ARM技术的发展
1.2 RISC微处理器的体系结构及其特点
1.3 ARM微处理器的指令系统
1.4 ARM处理器系列
1.4.1 ARM7微处理器系列
1.4.2 ARM9微处理器系列
1.4.3 ARM9E微处理器系列
1.4.4 ARMl0E微处理器系列
1.4.5 SecurCore微处理器系列
1.4.6 XscNe处理器
1.5 ARM微处理器的应用系统开发
习题1
第2章ARM体系结构
2.1 ARM7TDMI程序员模型
2.1.1 内核概述
2.1.2译码器与控制逻辑
2.1.3运算器
2.1.4内核接口信号
2.2工作状态与工作模式
2.2.1工作状态
2.2.2 ARM的工作模式
2.3 ARM和Thumb状态的寄存器组织
2.3.1通用寄存器
2.3.2 Thumb状态下的寄存器组织
2.3.3程序计数器
2.3.4程序状态寄存器
2.3.5连接寄存器
2.3.6堆栈指针寄存器
2.4存储器组织结构
2.4.1数据类型和存储数据格式
2.4.2数据总线类型
2.4.3 ARM7TDMI总线访问周期
2.4.4指令预取与代码自修改
2.4.5 AMBA接口(Advanced Microcontroller Bus Architecture)
2.5异常(Exceptions)
2.5.1异常类型及其处理过程
2.5.2异常优先级(Exception Priorities)和异常向量(Exception Vectors)
2.5.3应用程序中的异常响应
2.5.4异常返回
2.6复位
2.7协处理器接口
2.7.1协处理器概述
2.7.2 ARM7TDMI与协处理器的协同关系
2.7.3协处理器使用中的若干问题
习题2
第3章ARM指令的特点和寻址方式
3.1 ARM指令特点
3.2 ARM指令的寻址方式
习题3
第4章ARM指令系统概述
4.1分支指令
4.2 ARM的数据处理指令
4.2.1算术运算类指令
4.2.2逻辑运算类指令
4.2.3比较类指令
4.2.4测试类指令
4.2.5传送类指令
4.2.6乘法类指令
4.3异常处理指令
4.4 ARM的存储器加载/存储指令
4.4.1单寄存器加载
4.4.2单寄存器存储
4.4.3多寄存器加载和多寄存器存储
4.4.4寄存器交换
4.5协处理器指令
4.6 ARM状态寄存器访问指令
习题4
第5章ARM汇编语言程序设计
5.1 ARM汇编语言伪指令
5.1.1符号定义伪指令
5.1.2空间分配伪指令
5.1.3汇编控制伪指令
5.1.4格式控制伪指令
5.1.5 ARM伪指令
5.1.6 Thumb伪指令
5.2 ARM汇编语言语句格式
5.2.1 ARM汇编语言中的符号
5.2.2汇编语言程序中的表达式和运算符
5.3 ARM语言程序结构
5.4简单的ARM程序设计
5.4.1简单的ARM程序
5.4.2子程序调用程序设计
5.4.3分支程序设计
5.4.4查表与散转程序设计
5.4.5数据串拷贝程序的设计
习题5
第6章 ARM.ThHITIb交互工作
6.1交互工作原理
6.1.1交互工作的必要性
6.1.2交互工作的切换指令
6.1.3与状态切换有关的伪指令
6.2交互程序
6.2.1简单的交互程序设计的例子
6.2.2 ARM指令头的例子
6.2.3交互子程序调用
6.3 ARM v5T扩展
6.4交互子程序和Veneer
6.4.1交互编译选项
6.4.2 Veneer
习题6
第7章 LPC2200系列原理与功能
7.1概述
7.1.1特性
7.1.2结构
7.2管脚分布及信号描述
7.3存储系统
7.3.1存储器映射
7.3.2存储器加速模块(MAM)
7.3.3外部存储器控制器(EMC)
7.4时钟控制电路
7.4.1晶体振荡器
7.4.2 PLL及相关寄存器
7.4.3 VPB分频器及相关寄存器
7.5复位和功率控制
7.5.1 复位
7.5.2功率控制
7.6中断
7.6.1向量中断控制器VIC
7.6.2外部中断
7.7其他片上外围模块
习题7
第8章LPC2200系列开发平台
8.1概述
8.2硬件电路的设计及其注意事项
8.2.1 电源、晶振及复位信号的处理
8.2.2 JTAG接口电路的正确设计
8.2.3模式管脚的连接方法
8.2.4存储器扩展
8.2.5 UART扩展
8.2.6 CAN总线扩展
8.2.7 USB接口
8.2.8硬件系统设计需要考虑的问题
习题8
第9章集成开发环境Embest lDE
9.1 Embest IDE概述
9.1.1 Embest IDE开发环境
9.1.2 Embest IDE安装
9.1.3 Embest IDE主框架窗口
9.2 Embest IDE的编辑
9.3工程管理
9.3.1工程管理的操作
9.3.2工程配置
9.4编译、汇编和链接
9.4.1 GNUTools forARM选项
9.4.2 ARM Build Tools选项
9.4.3工程文件夹的编译设置
9.4.4工程编译、汇编和链接
9.5工程调试
9.5.1调试设置
9.5.2调试
9.5.3 Embest[DE附带工具介绍
9.6 GNU编译环境下程序的编写
9.6.1移植SDT的汇编程序
9.6.2链接脚本文件
习题9
第1 O章ARM高级语言程序设计基础
10.1 C语言与汇编的混合编程
10.1.1 ARM过程调用标准ATPCS
10.1.2内嵌汇编器
10.1.3 C语言和ARM汇编语言间相互调用
10.2基本I/O程序(含启动代码)
10.2.1启动代码
10.2.2基本I/O主程序
10.3 SPI通信程序
10.4串口通信程序
10.5 A/D程序
10.6中断程序
习题10
第11章嵌入式LlflUX
11.1嵌入式操作系统概述
11.1.1操作系统的作用
11.1.2操作系统的主要任务
11.1.3嵌入式操作系统的特点
11.1.4典型的嵌入式实时操作系统
11.2嵌入式Linux操作系统内核及其特点
11.2.1 GNU及自由软件开发模式
11.2.2 Linux内核的引入
11.2.3 Linux内核的特点
11.2.4标准Linux内核的变种
11.3 Linux与uClinux
11.3.1 uClinux名称释义
11.3.2 MMU工作机制
11.3.3 uClinux与普通Linux系统的异同
11.3.4 uClinux的发展前景
11.4构建一个嵌入式Linux系统
11.4.1 Linux内核与Linux系统
11.4.2嵌入式Linux系统的特点
11.4.3嵌入式系统的开发
11.4.4开发一个嵌入式Linux系统
习题11
第12章嵌入式LifiUX内核移植和定制
12.1 Linux内核代码的基本结构
12.2 Linux内核的配置与编译
12.2.1内核配置
12,2.2应用程序配置
12.3嵌入式Linux的引导过程
12.4内核移植的一般步骤
12.5根文件系统的分析与构造
12.5.1根文件系统的组成
12.5.2文件系统的选择
12.5.3根文件系统的生成
习题12
第13章嵌入式Linux应用程序的开发
13.1概述
13.2嵌入式应用程序的开发过程
13.3交叉编译环境的建立
13.3.1 Cygwin开发环境
13.3.2交叉编译工具gcc
13.4多程序的编译工具make
13.5交叉调试工具gdb
13.5.1 gdb的使用
13.5.2 gdb的基本命令
13.5.3 gdb的工作过程
13.5.4关于core文件
13.5.5调试运行中的进程
习题13
第14章嵌入式Linux驱动程序的开发
14.1概述
14.2将设备驱动程序纳入到文件系统中
14.3设备驱动程序的编程框架及函数调用接口
14.3.1 设备驱动程序开发的特性与共性
14.3.2程序框架及解释
14.4设备驱动程序的实例
14.5设计自己的驱动程序
14.5.1设备的功能
14.5.2设备的实现
14.5.3其他驱动程序相关技术
14.5.4动态加载设备驱动程序
习题14
参考文献