- 1、本文档共122页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第12章 ARM32位单片机的结构、编程和开发工具;12.1 ARM内核体系结构
12.2 ARM编程模型
12.3 ARM汇编指令
12.4 ARM汇编程序设计
12.5 ARM程序开发工具ADS
;12.1 ARM内核体系结构;ARM处理器是第一个为商业用途开发的RISC微处理器。ARM所采用的体系结构对于传统的RISC体系结构既有继承,又有舍弃和发展,即完全根据实际设计的需要仔细研究,没有机械照搬。最初的ARM设计最关心的是必须保持设计的简单性。ARM的简单性在ARM的硬件组织和实现方面比指令集的结构方面体现的更明显。但是ARM仍保留一些CISC的特征,并且因此达到比纯粹的RISC更高的代码密度,使得ARM在开始时就获得了其功率效率和较小的核面积的优势。;ARM微处理器内核中普遍采用了流水线结构,随着ARM内核的发展,其流水线结构越来越复杂。常见的ARM处理器内核流水线如图12-1所示。; 迄今为止,ARM体系结构共定义了8个版本,版本号分别为v1~v8,从版本v1到v8,ARM体系的指令集功能不断扩大。同时,各版本中还有一些变种,这些变种定义该版本指令集中不同的功能。ARM处理器系列中的各种处理器,实现技术各不相同,性能差别很大,应用场合也不同,但只要它们支持同一ARM体系版本,基于它们的应用软件将是兼容的。
需要注意,ARM的体系结构版本号并不是ARM核的版本号。;常见的ARM体系架构与ARM核的版本对应关系见表12-1 。;基于ARM的处理器内核简称ARM内核,内核并不是芯片,ARM内核与其他部件组合(如存储器、定时器和片内外设接口等)在一起才构成芯片。; ARM处理器内核不但包括CPU,还包括高速缓存、MMU控制器、嵌入式跟踪宏单元、TCM接口、总线控制逻辑、AHB接口、协处理器、中断控制器等电路模块。整个ARM处理器内核的核心是CPU。虽然随着ARM处理器内核的升级,其CPU也不断改进,但其基本结构主要由32位ALU、31个32位通用寄存器及6个状态寄存器、32个8位乘法器、32个桶形移位寄存器、指令译码及控制逻辑、指令流水线和数据/地址寄存器组成。; 图12-3ARM CPU基本组成模型;ARM处理器是32位处理器,但兼容16位指令集和数据类型。从编程的角度看,ARM处理器有以下两种操作状态:
ARM状态 32位,处理器执行的是字的ARM指令;
Thumb状态 16位,处理器执行的是半字的Thumb指令。
在程序执行过程中,处理器可以随时在这两种操作状态之间切换。值得注意的是,操作状态的切换并不影响处理器的工作模式或寄存器的内容。ARM处理器复位后开始执行代码时,应该处于ARM状态。;ARM指令集和Thumb指令集均有切换处理器状态的指令,并可在两种操作状态之间切换。两个状态可以按以下方法切换:
进入Thumb状态 当操作数寄存器的状态位(最低位)为1时,执行BX指令就可以进行Thumb状态。如果处理器在Thumb状态发生异常(所有异常处理都在ARM状态下执行),则当异常处理返回时自动切换到Thumb状态。
进入ARM状态 操作数寄存器的状态位(最低位)为0时,执行BX指令就可以进行ARM状态。处理器进行异常处理时,把PC的值放入异常模式链接寄存器中,从异常向量地址开始执行程序,系统自动进入ARM状态。;ARM体系结构支持7种处理器模式:用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。具体参考表12-2。;除用户模式外,其它模式为特权模式。ARM内部寄存器和一些片内外设在硬件设计上只允许(或可选为只允许)特权模式下访问。此处,特权模式可以自由地切换处理器模式,而用户模式不能直接切换别的模式。
有5种处理器模式称为异常模式,它们是:快中断模式、中断模式、管理模式、中止模式、未定义模式。它们除了可以通过程序切换进入外,也可以由特定的异常进入。当特定的异常出现时,处理器进入相应的模式。每种模式都有某些附加的寄存器,以避免异常退出时用户模式的状态不可靠。
系统模式与用户模式一样不能由异常进入,且使用与用户模式完全相同的寄存器。然而系统模式是特权模式,不受用户模式的限制。有了系统模式,操作系统要访问用户模式的寄存器就比较方便。同时,操作系统的一些特权任务可以使用这个模式,以访问一些受控的资源而不必担心异常出现时的任务状态变得不可靠。
;ARM处理器共有37个32位寄存器:
31个通用寄存器
R0~R15、R13_svc、R14_svc、R13_abt、R14_abt、R13_unt、R14_unt、R13_irq、R14_irt和R8_frq~R14_frq;
6个状态寄存器
CPSR、SPSR_svc、SPSR_abt、SPSR_
文档评论(0)