历史上的今天
返回首页

历史上的今天

今天是:2025年02月19日(星期三)

正在发生

2020年02月19日 | ARM学习笔记5——程序状态寄存器

2020-02-19 来源:eefocus

  当前程序状态寄存器CPSR可以在任何位处理器模式下被访问,它包含条件码标志、中断控制、当前处理器模式以及其他状态和控制信息。CPSR的结构图如下:

一、条件标志位

  CPSR最高4位:N(Negative)、Z(Zero)、C(Carry)和V(oVerflow)称为条件标志位。程序名中的算术或逻辑指令可以根据其执行结果修改这些条件标志位,之后的条件执行指令可以根据这些条件标志决定相应的指令是否被执行。各条件标志位的具体含义如下:
  1、N(符号位)
    该位设置为当前指令运行结果的BIT[31]的值。当两个由补码表示的有符号整数运算时,N=1表示运算的结果为负数;N=0表示结果为正数或零。
  2、Z(零标志位)
    如果指令的运算结果为0,则Z=1(通常用来表示比较的结果为“相等”);否则Z=0.
  3、C(进、借位标志)
    表示运算是否有进位、借位等。下面分4种情况讨论C的设置方法。
    3.1、在加法指令中(包括比较指令CMN),当结果产生了进位,则C=1,表示无符号数运算发生上溢出;其他情况下C=0.
    3.2、B、在减法指令中(包括比较指令CMP),当运算中发生错位(即无符号数运算发生下溢出),则C=0;其他情况下C=1
    3.3、对于在操作数中包含移位操作的运算指令(非加/减法指令),C被设置成被移位寄存器最后移出去的位。
    3.4、对于其他非加/减法运算指令,C的值通常不受影响
  4、V(溢出标志位)
    4.1、对于加/减运算指令,当操作数和运算结果都是以二进制的补码表示的带符号的数时,V=1表示符号位溢出
    4.2、对于非加/减法指令,通常不改变标志位V的值


二、标志位
  在带DSP指令扩展的ARM v5E及更高版本中,CPSR[27]用于指示增强的DSP指令是否发生了溢出或饱和。


三、中断控制位
  I=1时,IRQ(中断模式)被禁止;I=0时,IRQ中断生效
  F=1时,FIQ(快速中断模式)被禁止;F=0时,FIQ中断生效


四、状态控制位
  T位是处理器的状态控制位,主要用于ARM体系带T的版本,在非T系列的ARM版本中,T位将始终为0.当T=0时,处理器处于ARM状态(即正在执行32位的ARM指令),当处理器处于Thumb状态(即正在执行16位的Thumb指令)


  不能通过直接修改CPSR的T位来改变处理器的状态,因为直接修改CPSR的T结果不可预知,必须通过状态切换指令BX、BLX指令来修改T位。


五、模式控制位
  M[4:0]为模式控制位,这些为的组合确定了处理器处于哪种状态。下表给出了各个模式对应的M值:

推荐阅读

史海拾趣

GE Sensing ( Amphenol Advanced Sensors )公司的发展小趣事

对于4h的交流电源定时器(555,BH4024)电路,网友可能会提出一系列问题。以下是一些常见问题及其详细回答:

1. 电路的基本工作原理是什么?

回答:该电路结合了555定时器(作为时基电路)和BH4024(7级二进制串行计数器/分频器)来实现4小时的定时功能。555定时器用于产生定时信号,而BH4024则负责将定时信号转换成所需的时间间隔。每当按下AN(定时触动按钮)时,电路开始计时,并在4小时后自动切断交流电源。

2. 如何调整定时时间?

回答:直接调整4小时的定时时间可能不直接通过电路中的元件实现,因为定时时间主要由BH4024的分频特性和555定时器的振荡频率决定。然而,可以通过改变555定时器的外部电阻和电容值来调整其振荡频率,但这通常会影响整个电路的定时精度和稳定性。对于精确调整至4小时,可能需要使用微控制器或其他可编程逻辑设备来替代或辅助BH4024和555定时器。

3. 电路中的555定时器具体起到什么作用?

回答:在这个电路中,555定时器作为时基电路,负责产生稳定的振荡信号。这个振荡信号的频率和占空比可以通过调整与555定时器相连的电阻和电容值来改变。然而,在这个特定的应用中,555定时器的输出信号通常被用作BH4024的输入信号,以便控制BH4024的计数和分频过程。

4. BH4024是如何实现定时功能的?

回答:BH4024是一个7级二进制串行计数器/分频器,它能够根据输入的时钟信号进行计数,并在达到预定次数后输出一个翻转信号。在这个电路中,BH4024的计数频率由555定时器的输出信号决定。当计数器达到某个预设值时(这个值决定了4小时的定时长度),BH4024会输出一个信号来切断交流电源。

5. 电路中的电源要求是什么?

回答:电路中的电源要求取决于所使用的555定时器和BH4024的具体型号以及电路中的其他元件。通常情况下,555定时器可以在较宽的电源电压范围内工作(如4.5V至16V),但具体值应参考器件的数据手册。对于BH4024和其他元件,也应遵循类似的电源要求。此外,由于该电路涉及交流电源的控制,因此还需要注意电路的安全性和稳定性问题。

6. 如何确保电路的可靠性和安全性?

回答:为了确保电路的可靠性和安全性,需要采取以下措施:

  • 选择质量可靠的元件和器件,并按照正确的规格和参数进行连接。
  • 在电路设计中考虑适当的保护措施,如过流保护、过压保护等。
  • 在实际使用中,注意避免电路受到外部干扰和损坏。
  • 定期对电路进行检查和维护,以确保其正常运行和延长使用寿命。

7. 电路有哪些潜在的应用场景?

回答:该电路具有广泛的应用场景,包括但不限于:

  • 家庭自动化系统中的定时开关功能。
  • 工业生产线上的自动断电和重启功能。
  • 实验室和测试设备中的定时控制功能。
  • 公共场所的自动照明和节能控制功能等。

总之,对于4h的交流电源定时器(555,BH4024)电路,网友可能会关注其工作原理、定时时间调整、元件作用、电源要求、可靠性和安全性以及潜在应用场景等方面的问题。以上回答旨在提供全面的信息和指导。

EiKO Global LLC公司的发展小趣事

随着智能家居和物联网技术的兴起,EiKO开始积极探索智能照明系统的研发与应用。公司投入大量研发资源,将传统照明产品与智能控制技术相结合,推出了具有远程控制、定时开关、色温调节等功能的智能照明系统。

这些智能照明系统不仅提高了用户的使用体验,还为用户带来了更加便捷和智能的生活方式。例如,用户可以通过手机APP远程控制家中的照明设备,实现定时开关和色温调节等功能;同时,智能照明系统还可以与智能家居系统相连接,实现与其他智能设备的联动控制。

Davies Molding公司的发展小趣事

Davies Molding公司在发展过程中,始终注重市场布局与拓展。公司不仅在美国中西部建立了稳固的市场地位,还积极开拓国际市场,将产品出口到全球多个国家和地区。通过与全球客户的合作,Davies Molding公司不仅提升了品牌影响力,还获得了更多的发展机遇。

Altitude Technology公司的发展小趣事

随着公司的不断发展,Altitude Technology逐渐在电子行业中崭露头角。然而,市场竞争也日趋激烈,为了保持领先地位,公司决定加大研发投入,致力于技术突破。经过长时间的研发,Altitude Technology成功推出了一款采用最新芯片技术的智能手机,这款手机在性能、功耗和拍照效果等方面均达到了行业领先水平,为公司赢得了更多的市场份额。

福斯特(FIRST)公司的发展小趣事
使用专业的诊断仪读取ESP系统的故障码,根据故障码进行针对性的排查和维修。
爱普特半导体(APTSEMI)公司的发展小趣事

在电子行业发展的浪潮中,爱普特半导体(APTSEMI)始终坚持自主创新的发展道路。公司自创立之初,就致力于研发具有自主知识产权的微处理器芯片。面对国外技术封锁和市场垄断的困境,爱普特团队不畏艰难,投入大量研发资源,成功突破了多项技术难关,研发出了全国产、高可靠性的32位MCU产品。这些产品性能卓越,可与国际先进水平相媲美,为我国电子行业的自主可控发展贡献了重要力量。

问答坊 | AI 解惑

怎样使用运算放大器

给大家提供出来,不知能否有帮助 [ 本帖最后由 zzz-0909 于 2009-3-9 12:11 编辑 ]…

查看全部问答>

基于RSSI的无线传感器网络三角形质心定位算法

引 言     无线传感器网络是面向事件的监测网络,对于大多数应用,不知道传感器位置而感知的数据是没有意义的。实时地确定事件发生的位置或获取消息的节点位置是传感器网络最基本的功能之一,也是提供监测事件位置信息的前提,所以定位 ...…

查看全部问答>

英国发明“面包碗” 饭后不用刷碗

对于那些既想品尝美味又不愿刷碗的懒汉们来说,一项新发明的面包碗一定会使他们欣喜过望,这种新餐具不但可以避免刷碗的烦恼,其本身还是一道美味佳肴。 据英国《每日电讯报》报道,这种面制碗是英国伯明翰的一家食品公司发明的,他们希望食客们可 ...…

查看全部问答>

“添加BSP”新手求救

我今天下载了PB4.0要求在ARM平台下开发。但我新建平台添加BSP的时候为什么只有如下图的一个可选项,而没有ARM的呢? C:\\Documents and Settings\\yemanyu\\桌面…

查看全部问答>

求Zigbee的中文资料

JN5121模组,谢谢~~~…

查看全部问答>

开发板调试口更改问题的请教。

有一个问题请教一下各位大侠,希望大家给与帮助,谢谢! 我有一个开发板linux下默认的使用了3线的串口为调试终端,现我想使用其他的串口作为调试口,而把该3线口解放出来另作他用, 不知道该怎么做? 我的理解是:系统启动后会启动一个shell并 ...…

查看全部问答>

高分悬赏......

有2个4子开关和两个2子开关,要设计一个仪器来测量各个开关的的时间延时,即最先接通的子开关和最后接通的时间,各个开关不是同时接通的。我的设计思路用cpld+mcs51,mcs51实现一个数字计时器的功能,用cpld做逻辑处理,即产生一个脉冲!硬件上的设 ...…

查看全部问答>

U-BOOT1.2.0移植到QY2440总结

移植过程主要参考http://blog.chinaunix.net/u1/34474/showart.php?id=397315文章,tekkamna写的很详细!下面就移植过程中出现的问题和学到的东西进行总结: 1.U-BOOT 启动分为两个阶段,第一阶段主要是对时钟和中断进行初始化。这主要在/cpu/ ...…

查看全部问答>

物联网智能家居-厨房之富士通MB9B506的串口通讯传输数据成功

先上张富士通MB9B506与MSP430G2553的数据传输图片:黑白线为串口线!可以看到两边的数据相同!程序:接收(中断法):void MFSI_RX2_IRQHandler(void){   if(((UART2_SSR&0x08)>>3) == 1)       UART2_SSR = 0 ...…

查看全部问答>