ARM嵌入式系统设计原理与开发实例

分類: 图书,计算机/网络,计算机体系结构,
作者: 张晓伟,刘盼盼 编著
出 版 社: 电子工业出版社
出版时间: 2008-11-1字数: 799200版次: 1页数: 431印刷时间: 2008/11/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787121073601包装: 平装编辑推荐
AT91系统微控制器的体系结构,ARM内核的指令集,汇编程序编写,软件编程的开发平台,操作系统移植,控制器的片内资源。
内容简介
本书主要介绍了如何在ARM开发板上进行嵌入式系统的设计。
全书层次由浅入深、循序渐进,详细介绍了AT91系列微控制器的体系结构、ARM内核的指令集、汇编程序编写、软件编程的开发平台、操作系统移植等内容,同时介绍了控制器的片内资源,给出了具体的实用程序和设计实例。本书不仅有详细的理论基础知识介绍,还有大量的开发案例以供参考,学习性和实用性强。
本书适合从事嵌入式系统设计工作的广大科技人员阅读,也可作为大专院校电子控制专业及其他相关专业的教材或参考资料。
目录
第1章 ARM概述
1.1 ARM技术的发展
1.2 ARM微处理器概述
1.2.1 RISC体系结构
1.2.2 ARM微处理器的寄存器结构
1.2.3 ARM微处理器的指令结构
1.3 ARM微处理器系列
1.3.1 ARM7微处理器系列
1.3.2 ARM9微处理器系列
1.3.3 ARM9E微处理器系列
1.3.4 ARMl0E微处理器系列
1.3.5 SecurCore微处理器系列
1.3.6 StrongARM微处理器
1.3.7 Xscale微处理器
1.4 ARM微处理器的应用选型
1.5 本章小结
第2章 ARM920T编程模型
2.1 ARM920T内核
2.1.1 CPU核简介
2.1.2 流水线结构
2.2 ARM微处理器的工作状态
2.3 处理器工作模式
2.4 寄存器组织
2.4.1 通用寄存器
2.4.2 程序状态寄存器
2.4.3 Thumb状态下的寄存器组织
2.5 异常(EXCEPTIONS)
2.5.1 ARM体系结构所支持的异常类型
2.5.2 对异常的响应
2.5.3 从异常返回
2.5.4 外中断IRQ异常举例
2.6 ARM存储器接口
2.7 ARM体系结构的缓存(CACHE)
2.7.1 Cache的结构
2.7.2 Cache的工作原理
2.8 ARM体系结构的存储器管理单元(MMU)
2.9 CPI5协处理器
2.9.1 寄存器R0和R1
2.9.2 转换表基地址寄存器
2.9.3 域访问控制寄存器
2.9.4 故障状态寄存器
2.9.5 故障地址寄存器
2.9.6 Cache操作寄存器
2.9.7 TLB工作寄存器
2.10 本章小结
第3章 ARM指令集和汇编程序设计
3.1 ARM指令的寻址方式
3.1.1 立即寻址
3.1.2 寄存器寻址
3.1.3 寄存器偏移寻址
3.1.4 寄存器间接寻址
3.1.5 基址变址寻址
3.1.6 相对寻址
3.1.7 多寄存器寻址
3.1.8 堆栈寻址
3.1.9 块复制寻址
3.2 ARM指令集概述
3.2.1 ARM指令的格式
3.2.2 ARM指令的分类
3.2.3 ARM指令的条件域
3.3 ARM指令集
3.3.1 跳转指令
3.3.2 数据处理指令
3.3.3 乘法指令与乘加指令
3.3.4 程序状态寄存器访问指令
3.3.5 存储器访问指令
3.3.6 数据交换指令
3.3.7 移位指令
3.3.8 异常产生指令
3.3.9 协处理器指令
3.4 THUMB指令介绍
3.5 ARM汇编语言的伪指令与伪操作
……
第4章 基于ARM9的BOOT LOADER分析
第5章 AT91系列微控制器的片内资源
第6章 电源管理控制器
第7章 外部总线接口(EBI)
第8章 中断控制器
第9章 并行口和串行口
第10章 定时器
第11章 ATMEL系列ARM开发实尩
第12章 ARM开发及调试
第13章 AT91微控制器开发平台
附录A 映像文件的组成和执行机理
附录B X-Modem协议
附录C AT91库函数说明
书摘插图
第2章 ARM920T编程模型
2.1 ARM920T内核
2.1.2 流水线结构
流水线是处理器执行指令时采用的机制。使用流水线,可在取下一条指令的同时译码和执行其他的指令,这使得几个操作可以同时进行,并使处理器和存储器系统连续操作,从而加快执行速度。
ARM7采用冯•诺伊曼结构——统一的数据和指令存储器,使系统的性能受到存储器带宽的影响,只采用了3级流水线;而得益于哈佛结构的设计,ARM9则是5级流水线,可以有效地减少每个指令花费的平均周期数或增加每个周期能够完成的指令数。目前,ARM11是ARM家族中性能最强的一个系列,采用了8级流水线。
ARM9的5级流水线的功能分别描述如下。
1.取出指令
从存储器(Cache/Memory)中取出指令,并将其放入指令流水线。
2.译码
指令被译码,从寄存器堆中读取寄存器操作数。
3.执行
把一个操作数移位,产生ALU的结果。如果指令是Load或Store,则在ALU中计算存储器地址。
4.访问数据存储器
如果需要,则访问数据存储器;否则,A1U只是简单地缓冲一个时钟周期,以便所有的指令具有同样的流程。
5.回写寄存器
将指令产生的结果回写(Write Back)到寄存器堆,包括任何从存储器中读取的数据。
在正常的操作过程中,在执行一条指令的同时对下一条指令进行译码,并将第3条指令从存储器中取出。
ARM的流水线具有以下特征:
执行一条分支指令或直接修改PC值时,ARM内核会清空流水线。
ARM10使用分支预测技术,预测可能的分支并在指令执行前装载新的分支地址,从而减小清空流水线的影响。
即使产生了一个中断,一条处于“执行”阶段的指令也将会完成。流水线里其他指令会被抛弃,处理器也将从向量表的适当入口处开始填充流水线。
……