历史上的今天
返回首页

历史上的今天

今天是:2024年09月29日(星期日)

正在发生

2021年09月29日 | 详细解读ARM寄存器之CPSR

2021-09-29 来源:eefocus

一、CPSR概述

ARM处理器共有37个寄存器。这37个寄存器按其在用户编程中的功能划分,可分为2类寄存器,即31个通用寄存器和6个状态寄存器。这6个状态寄存器在ARM公司文件中其名称分别为:CPSR、SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq和SPSR_fig。这12的作用分别如图1所示:

程序状态寄存器

所有处理器模式下都可访问当前程序状态寄存器CPSR。CPSR中包含条件码标志、中断禁止位、当前处理器模式以及其他状态和控制信息。在每种异常模式下都有一个对用的程序状态寄存器SPSR。当异常出现时,SPSR用于保存CPSR的状态,以便异常返回后恢复异常发生时的工作状态。


(1)条件码标志


N、Z、C、V,最高4位称为条件码标志。ARM的大多数指令可以条件执行的,即通过检测这些条件码标志来决定程序指令如何执行。


各个条件码的含义如下:


N:在结果是有符号的二进制补码情况下,如果结果为负数,则N=1;如果结果为非负数,则N=0。


Z:如果结果为0,则Z=1;如果结果为非零,则Z=0。


C:其设置分一下几种情况:


               对于加法指令(包含比较指令CMN),如果产生进位,则C=1;否则C=0。


               对于减法指令(包括比较指令CMP),如果产生借位,则C=0;否则C=1。


               对于有移位操作的非法指令,C为移位操作中最后移出位的值。


               对于其他指令,C通常不变。


V:对于加减法指令,在操作数和结果是有符号的整数时,如果发生溢出,则V=1;如果无溢出发生,则V=0;对于其他指令,V通常不发生变化。


(2)控制位的作用在图1中可以看出,在这里就不阐述了。


二:CPSR与CPSR_c的区别


      CPSR有4个8位区域:标志域(F)、状态域(S)、扩展域(X)、控制域(C)


      MSR - Load specified fields of the CPSR or SPSR with an immediate constant, or from the contents of a general-purpose register.


     Syntax:


     MSR{cond} _, #immed_8r MSR{cond} _, Rm where: cond is an optional condition code. is either CPSR or SPSR. specifies the field or fields to be moved. can be one or more of:


c control field mask byte (PSR[7:0]) x extension field mask byte (PSR[15:8]) s status field mask byte (PSR[23:16) f flags field mask byte (PSR[31:24]). immed_8r is an expression evaluating to a numeric constant. The constant must correspond to an 8-bit pattern rotated by an even number of bits within a 32-bit word. Rm is the source register.


      C 控制域屏蔽字节(psr[7:0])

      X 扩展域屏蔽字节(psr[15:8])

      S 状态域屏蔽字节(psr[23:16])

      F 标志域屏蔽字节(psr[31:24])

常用于MRS或MSR指令,用于psr中的值转移到寄存器或把寄存器的内容加载到psr中.

如:


MSR CPSR_c,#0xd3


推荐阅读

史海拾趣

FUJI公司的发展小趣事

在电子行业中,虽然直接名为“FUJI”的公司可能不是最为人所熟知的(注意:富士通实际上使用的是“Fujitsu”而非“FUJI”,但考虑到FUJI可能与富士电机等相关联,以下将基于这些相关公司进行阐述),但富士电机及其关联企业,如富士通和富士施乐,在电子行业的发展历程中都有着举足轻重的地位。以下是五个与这些公司相关的故事:

1. 富士电机的诞生与多元化发展

故事概述:富士电机控股公司(FUJI ELECTRIC HOLDINGS CO., LTD.)成立于1923年,是古河电器工业与德国西门子资本技术合作的产物。起初,公司以电气机器制造为主,后逐渐扩展到电机系统、电子设备和零售终端设备等多个领域。富士电机不仅在电机领域保持领先地位,还积极拓展至自动贩卖机等领域,并在该领域占据日本国内第一的市场份额。其发展历程展现了日本重电机制造商的多元化战略和全球视野。

2. 富士通的通讯与计算机技术崛起

故事概述:富士通(Fujitsu)的前身可以追溯到1875年成立的Furukawa Denko公司,后与西门子合作成立富士电机制造株式会社。富士通在通讯和计算机技术方面的崛起尤为显著。1935年,富士通信机制造公司成立,标志着富士通在通讯领域的正式起步。随后,公司不断推出创新产品,如FACOM系列计算机、第一台出口海外的计算机等,奠定了其在全球计算机市场的地位。富士通对通讯和计算机技术的持续投入和创新,使其成为电子行业的重要力量。

3. 富士施乐的打印机与复印技术革新

故事概述:富士施乐(Fuji Xerox)成立于1962年,是富士胶片和美国施乐合资成立的企业。自成立以来,富士施乐在打印机和复印技术方面取得了显著成就。公司不仅推出了多款具有创新性的打印和复印产品,还积极应对市场变化,不断调整业务结构。例如,在数字化浪潮中,富士施乐推出了多款支持网络打印和多功能一体的产品,满足了市场的新需求。其技术革新和市场策略调整,使富士施乐在打印和复印技术领域保持领先地位。

4. 富士通与FANUC的工业机器人合作

故事概述:富士通与FANUC的合作是电子行业与工业机器人技术结合的一个典型案例。FANUC作为富士通的子公司之一,自上世纪70年代成立以来,便致力于工业机器人的研发和生产。富士通与FANUC的紧密合作,不仅推动了工业机器人技术的快速发展,还促进了电子行业生产线的自动化和智能化升级。两家公司的合作成果广泛应用于汽车制造、电子组装等多个领域,为工业生产带来了革命性的变化。

5. 富士电机在绿色能源领域的探索

故事概述:随着全球对绿色能源和可持续发展的重视,富士电机也开始在绿色能源领域进行积极探索。公司不仅致力于高效能电机的研发和生产,还积极推动可再生能源技术的应用。例如,富士电机在太阳能和风能领域推出了多款创新产品和技术解决方案,为可再生能源的普及和应用做出了积极贡献。其绿色能源战略不仅符合全球发展趋势,也为公司未来的可持续发展奠定了坚实基础。

以上五个故事分别展现了富士电机及其关联企业在电子行业不同领域的发展历程和成就。这些公司凭借持续的技术创新和市场拓展,成为了电子行业的重要参与者和推动者。

Benchmarq Microelectronics Inc公司的发展小趣事

随着半导体技术的不断进步,Benchmarq Microelectronics Inc始终保持着对技术创新的追求。公司加大研发投入,引进先进的生产设备和技术人才,不断推出具有创新性的半导体产品。其中,一款具有高性能、低功耗特点的芯片是公司技术创新的代表作。这款芯片采用了先进的工艺和材料,实现了更高的集成度和更低的功耗,满足了客户对高性能、长续航的需求。同时,公司还不断优化产品设计和生产流程,提高产品质量和生产效率,为客户提供了更加优质、可靠的产品。

DRS Technologies公司的发展小趣事

在全球电子行业快速发展的背景下,DRS面临着来自各方面的挑战。为了应对这些挑战,DRS不断加强研发投入,提高产品质量和服务水平。同时,公司也积极拓展国际市场,寻求更多的合作机会。通过这些努力,DRS在全球电子行业中保持了领先地位,并为未来的发展奠定了坚实的基础。

请注意,由于篇幅限制,以上故事均为概述性质,具体细节和背景信息可能有所省略。

德国ACAM公司的发展小趣事

2023年,ACAM公司与上海科技大学智造系统工程中心(CASE)签署了增材制造联合研发、应用研究和教育培训协议。这次合作标志着ACAM公司在增材制造领域的布局进一步深化,双方将共同推动增材制造技术的创新和应用,为行业的发展贡献更多的力量。

这五个故事展示了德国ACAM公司在电子行业中的发展历程和取得的成就。从创立之初的技术突破,到被收购后的技术实力大增,再到超声波计量领域的革命性突破,以及与高校合作推动增材制造发展,ACAM公司始终保持着创新的精神和不断进取的态度,为电子行业的发展做出了重要贡献。

ELMOS公司的发展小趣事

近年来,中国市场对汽车电子产品的需求不断增长,为ELMOS提供了广阔的发展空间。为了抓住这一发展机遇,ELMOS不断加大在中国的投入力度,扩大其在中国市场的规模和影响力。通过与国内汽车制造商和合作伙伴的深入合作,ELMOS在中国市场取得了显著的成果,并为公司未来的持续发展奠定了坚实的基础。

以上五个故事分别从不同角度展示了ELMOS公司在电子行业中的发展历程和成就。这些故事不仅体现了ELMOS的技术实力和市场竞争力,也展示了公司在全球化和国际化方面的努力和成果。

Harris公司的发展小趣事

二战后,随着全球经济的复苏和电气产品的爆炸性需求,Hammond迎来了前所未有的发展机遇。在1950年代和1960年代,Hammond积极扩展产品线,成为变压器、机架、机柜以及电气和电子行业外壳的领先供应商。同时,公司还进行了多次战略性收购,进一步巩固了其在北美电气OEM市场的地位,成为磁性材料的主要供应商之一。

问答坊 | AI 解惑

三社整流模块

系列功率模块资料…

查看全部问答>

请教一下专业英语

3.Requirements analysis, product/functions review是审查吗?, identification of issues是问题识别吗, system risk analysis, reliability analysis 8.Support, maintain and document functionality支持,维护且以文档记录(产品)功能 :就 ...…

查看全部问答>

cepc上串口不能发送数据

一. 在X86的目标机上能正常运行Createfile打开com1,但是用writefile发送数据失败.通过GetLastError()获得错误好1359. 二. 在该目标机器上,只能打开com3,其他的com1,com2,com4,com5都是Createfile失败.通过调试发现Com1用来wince作为调试信息输出.…

查看全部问答>

wince 6.0下使用什么来解码?

原来在5.0下,tcpmp是一个比较好的影音解码核心,但在6.0下问题多多,请问大虾们是用什么解决方案的?…

查看全部问答>

关于wince下实现AD采集的问题

    我想在wince下实现AD数据采集,思路是通过调用ceddk.dll中的函数读写ADC寄存器实现ADC。我简单地做了个试验,第一步,我把ADCDAT0寄存器的物理的物理地址0x5800000C通过MmMapIoSpace转变成虚拟地址0x00160000;第二步,我通过read_re ...…

查看全部问答>

关于如何学习嵌入式 高手 们进啊

大家好,我是一名大三的学生,学的是嵌入式方向的,但我们现在才学嵌入式操作系统,都TMD还是理论,学了等于没学,就上学期还学了个汇编,现在一学期都快过完了,感觉什么关于嵌入式方面的都没学到,如果靠下学期再来学点东西,以后出去就别想混了 ...…

查看全部问答>

编写c的时候,遇到一个小问题,郁闷,高手指点

long int i=32132121; void show_shuzi() {   if (i>99999999) return;   wei[7]=i/10000000;   i=i-wei[7]*10000000;      wei[6]=i/1000000;   i=i-wei[6]*1000000;   ...…

查看全部问答>

stm32ucosii如何使用串口中断在接收数据?

哪位大侠帮我解答下,不胜感激,小弟刚开始在STM32上折腾uCOS II.Micrium的代码已经跑上了,但中断还迷糊..............1)stm32 ucos ii 如何使用串口(如uart2)中断在接收数据?2)串口中断在哪开?然后用void US ...…

查看全部问答>

超级菜鸟 编译出错 不知如何处理 请大神们帮一下

刚装的软件,在坛里参考了一个程序,目的是想弄明白和熟悉一下软件的流程,看看能否工作? ,遇到这样的问题,不知道怎么弄了。请大神们帮忙看一下,是那里没有设置好?本人超级菜,请见谅。谢谢!     Error while running C/C++ com ...…

查看全部问答>