- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第13章ARM体系结构及开发实例详解
第13章 ARM体系结构及开发实例 学习一个处理器的编程和使用,最主要的是了解处理器的体系结构,需要了解的部分通常包括处理器的编程模型、指令结构、内存管理等。本书第3章简要介绍了ARM处理器,本章详细讲解目前应用最广泛的ARM9体系结构,这部分知识比较抽象,偏重于理论,在本章最后给出了基于三星S3C2440A的ARM9处理器编程实例,帮助读者理解。主要内容如下: ARM体系结构介绍 ARM体系结构的编程模型 ARM体系结构内存管理 S3C2440A常见的接口和控制器 S3C2440A处理器接口编程实例 13.1 ARM体系结构介绍 ARM处理器是从商业角度出发设计的RISC微处理器。ARM处理器继承了RISC体系结构,但是充分考虑到了实际应用。ARM设计主要关心设计的简单性,体现着硬件的组织和实现以及简洁的指令集。此外,ARM体系结构还引进了CISC体系结构的一些优点,因此获得较小的处理器功耗和较小的芯片面积。 13.1.1 ARM体系结构 在开发ARM芯片的时候,当时已经有许多机器都提出并使用了RISC技术。基于RISC技术的处理器有很多,但是只有少数的处理器完全使用RISC技术,许多基于RISC技术的处理器还吸收了其他体系结构的特点。 ARM是基于RISC技术的,但是在RISC技术的基础上又吸收了其他体系结构的优点,并且根据实际情况研究设计。ARM体系结构从Berkerley RISC体系结构发展而来,从商业角度出发,优化整合了一些处理器特征。ARM采用的结构特征包括: Load/Store体系结构 固定的32位指令 3地址指令格式 ARM体系结构放弃的特征如下: 1.寄存器窗口 2.延迟转移 3.所有指令单周期执行 13.1.2 ARM指令集介绍 每种处理器都包含了自己的指令集,ARM处理器属于精简指令集处理器,指令数量不多,本节介绍ARM指令集。 1.ARM指令集特点 2.指令的后缀 13.2 编程模型 建造房子需要房模,同样的,编程象建造房子,不同的房子需要不同的模型,编程也需要编程模型,可以简单的理解编程模型就是一个模板,是一种解决问题的通用规则,有了编程模型,在遇到类似问题的时候就有了解决问题的方法。每个处理器体现结构都有自己的编程模型,ARM9也提供了一组编程模型,本节介绍其中的重点部分。 13.2.1 数据类型 ARM9微处理器支持三种数据类型,字节(8位);半字(16位);字(32位)。其中,半字需要2字节对齐,字需要4字节对齐。字节对齐的含义就是,在内存中存放数据的地址必须是某个数的倍数,以ARM9微处理器为例,半字需要2字节对齐,在内存中,如果存放一个16字节的数据,这个存放地址必须是2的倍数。同样的,4字节对齐要求存放数据的地址必须是4的倍数。 字节对齐是微处理器的硬性要求,主要是为了处理器的寻址方便,字节对齐是由加载器自动设置的,无需人为干预,但是程序员应当注意,在自定义数据结构的时候,尽量保持数据结构是2字节或4字节对齐的,否则加载器可能会把数据结构表示的数据自动加载到字节对齐的内存位置,这时如果程序不是很严谨,会导致直接访问数据出错的问题。 13.2.2 处理器模式 ARM处理器提供了7种工作模式,工作模式名称及含义如下: 用户模式(user): 快速中断模式(fiq): 外部中断模式(irq): 特权模式(sve): 数据访问终止模式(abt): 未定义指令终止模式(und): 系统模式(sys): 13.2.3 寄存器 ARM处理器有31个通用寄存器和6个状态寄存器,共37个寄存器。37个寄存器按照处理器模式进行划分,有些寄存器被限定只能在特定模式下访问,有些寄存器可以在任何处理器模式下访问。其中,通用寄存器R0~R14、程序计数器PC以及特定的两个状态寄存器在任何处理器模式下都可以访问。 ARM处理器的37个寄存器按照功能被分成两个大类如下: 通用寄存器。 状态寄存器。 13.2.4 通用寄存器 ARM9的通用寄存器包括R0~R15,可以分为三类: 1.未分组寄存器R0~R7 2.分组寄存器R8~R14 3.程序计数器PC(R15) 13.2.5 程序状态寄存器 寄存器R16用作CPSR(Current Program Status Register,当前程序状态寄存器)。CPSR 可在任何运行模式下被访问,它包括条件标志位、中断禁止位、当前处理器模式标志位,以及其他一些相关的控制和状态位。 每一种运行模式下又都有一个专用的物理状态寄存器,称为SPSR(Saved Program Status Register,备份的程序状态寄存器)。SPSR寄存器在处理器进入某种异常模式的时候保存之前的CPSR寄存器值,用于异常处理后
文档评论(0)