历史上的今天
返回首页

历史上的今天

今天是:2025年01月31日(星期五)

2021年01月31日 | ARM处理器及ARM处理器工作模式

2021-01-31 来源:eefocus

简介:ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:
第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;
第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。


ARM处理器状态


ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:

第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;

第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。

在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。但ARM微处理器在开始执行代码时,应该处于ARM状态。


ARM处理器模式


ARM微处理器支持7种运行模式,分别为:

用户模式(usr):ARM处理器正常的程序执行状态。

快速中断模式(fiq):用于高速数据传输或通道处理。

外部中断模式(irq):用于通用的中断处理。

管理模式(svc):操作系统使用的保护模式。

数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。

系统模式(sys):运行具有特权的操作系统任务。

定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。


ARM寄存器


ARM处理器共有37个寄存器。其中包括:31个通用寄存器,包括程序计数器(PC)在内。这些寄存器都是32位寄存器。以及6个32位状态寄存器。

关于寄存器这里就不详细介绍了,有兴趣的人可以上网找找,很多这方面的资料。


异常处理


当正常的程序执行流程发生暂时的停止时,称之为异常,例如处理一个外部的中断请求。在处理异常之前,当前处理器的状态必须保留,这样当异常处理完成之后,当前程序可以继续执行。处理器允许多个异常同时发生,它们将会按固定的优先级进行处理。当一个异常出现以后,ARM微处理器会执行以下几步操作:


进入异常处理的基本步骤:


将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。将CPSR复制到相应的SPSR中。根据异常类型,强制设置CPSR的运行模式位。

强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM状态。

ARM微处理器对异常的响应过程用伪码可以描述为:

R14_ = Return Link

SPSR_= CPSR

CPSR[4:0] = Exception Mode Number

CPSR[5] = 0 ;当运行于 ARM 工作状态时

If == Reset or FIQ then;当响应 FIQ 异常时,禁止新的 FIQ 异常

CPSR[6] = 1

PSR[7] = 1

PC = Exception Vector Address


异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:

将连接寄存器LR的值减去相应的偏移量后送到PC中。

将SPSR复制回CPSR中。

若在进入异常处理时设置了中断禁止位,要在此清除。


推荐阅读

史海拾趣

华润微(CRMICRO)公司的发展小趣事

2001年,华润微成立矽科公司,开始涉足芯片设计业务。这一举措使公司能够为客户提供更加完整的解决方案,并进一步提升其市场竞争力。同时,华润微也意识到封装测试在半导体产业链中的重要性,于是在2003年成立安盛公司,开始进入封装测试领域。通过建立6英寸产线,华润微进一步巩固了其在半导体产业链中的地位。

Hong Kong X'Tals Ltd公司的发展小趣事
在高负载或长时间工作的情况下,需要关注LM122的散热问题,以避免过热导致性能下降或损坏。
Elpakco Inc公司的发展小趣事

Elpakco Inc公司的创立,源于创始人对电子行业未来趋势的敏锐洞察。在电子科技日新月异的时代,创始人凭借在半导体封装领域的丰富经验和深厚技术积累,决定创立一家专注于高精度电子元件封装的公司。初创时期,资金紧张、技术难度大、市场竞争激烈,但创始人带领团队夜以继日地研发,不断突破技术瓶颈,终于成功研制出第一款高精度、高可靠性的电子封装产品,为公司的发展奠定了坚实的基础。

ELMOS公司的发展小趣事

ELMOS的Fab-Lite方法为晶圆加工和测试业务提供了灵活和高效的制造策略。这种制造策略使得ELMOS能够根据市场需求快速调整生产计划,确保产品的及时供应。同时,通过与亚洲领先的晶圆代工厂合作伙伴的成功合作,ELMOS确保了供应链的安全和稳定,为客户提供了无与伦比的性能。

DIOTECH公司的发展小趣事

在数字化转型和智能化升级的大背景下,DIOTECH公司积极拥抱新技术和新趋势。公司投入巨资建设了数字化生产线和智能化工厂,实现了生产过程的自动化和信息化。同时,公司还加强了与云计算、大数据等技术的融合应用,推出了一系列智能化产品和服务。这些举措使得DIOTECH在数字化转型和智能化升级方面取得了显著成效,为公司未来的发展奠定了坚实基础。

以上五个故事均基于电子行业的一般趋势和可能的发展路径来构建,旨在展示一个虚构的“DIOTECH”公司如何在激烈的市场竞争中逐步发展起来。这些故事仅供参考,并不代表任何真实公司的实际发展情况。

DB Unlimited公司的发展小趣事

DB Unlimited始终将客户放在心中最重要的位置。公司坚持以客户为中心的服务理念,为客户提供全方位、高品质的服务。无论是售前咨询、售后服务还是技术支持等方面,DB Unlimited都始终秉持着专业、高效、热情的态度,赢得了客户的广泛赞誉和信赖。这种客户至上的服务理念也成为了公司不断发展壮大的重要保障之一。

请注意,以上故事框架仅供参考,实际的故事需要根据DB Unlimited公司的真实发展历程和具体事实进行编写。

问答坊 | AI 解惑

用CPLD实现结构简单的键盘控制器

本帖最后由 paulhyde 于 2014-9-15 08:55 编辑 用CPLD实现结构简单的键盘控制器  …

查看全部问答>

国半大师的经典巨著《Troubleshooting_Analog_Circuits》

本帖最后由 dontium 于 2015-1-23 11:34 编辑 国半大师的经典之作呃,详细讲了模拟电路的故障诊断。呵呵,我后来全部打印下来看了,国内翻译的不太好,英文原著还是相当的不错的撒,呵呵,分享下。 …

查看全部问答>

正激式开关电源变压器参数的计算 开关电源原理与设计(连载16)

1-6-3-2.正激式开关电源变压器参数的计算 正激式开关电源变压器参数的计算主要从这几个方面来考虑。一个是变压器初级线圈的匝数和伏秒容量,伏秒容量越大变压器的励磁电流就越小;另一个是变压器初、次级线圈的匝数比,以及变压器各个绕组的额定 ...…

查看全部问答>

S3C2440 WINCE 5.0上SD接口的WIFI驱动移植上去了,可以检测到网卡,但是搜不到网络

好不容易才把WIFI驱动移植进去,但是现在搜不到网络,但是用笔记本可以一下子搜到很多。 我的WIFI是接外置天线的,就是把一根比较长的天线焊在上面,我不知接之后是否还要考虑信号问题。 用的WIFI型号叫GM9601,是基于MARVELL 8686的。它的数据手 ...…

查看全部问答>

DDS+PLL是目前实用的频率合成方式么?

目前在无线电收发方面常用的频率合成方式有哪些呢?希望在该领域有经验的大虾推荐一些。…

查看全部问答>

推送全国的报告怎么写,有人会么

本帖最后由 paulhyde 于 2014-9-15 03:54 编辑 RT…………  …

查看全部问答>

AT89C51与三菱D700变频器通讯

哪位高手有AT89C51与三菱D700变频器通讯的汇编程序.......…

查看全部问答>

【设计工具】ISE使用指导,适合初学者

初学者的ISE使用指导,希望对大家有所帮助.   …

查看全部问答>

驱动入门

驱动入门:一个简单的字符设备驱动            首先我要向大家推荐一下韦东山老师的视频,他在视频里讲解的非常的好,把代码分析的非常的透彻,而且他会在视频里现场写出每一个程序的代码,而不是从其他的地方拿一 ...…

查看全部问答>