当前位置:首页 > 单片机 > 单片机
[导读]定义:程序状态寄存器;功能:反映数据运算状态,控制系统模式等;特点:程序状态寄存器不属于通用寄存器;关于CPSR的访问,ARM专门为其设立了两条指令:MRS:CPSR到通用寄存器传递数据指令;MSR:通用寄存器到CPRS传

定义:程序状态寄存器;
功能:反映数据运算状态,控制系统模式等;
特点:程序状态寄存器不属于通用寄存器;

关于CPSR的访问,ARM专门为其设立了两条指令:
MRS:CPSR到通用寄存器传递数据指令;
MSR:通用寄存器到CPRS传递数据指令;

(1)MSR 通用寄存器→CPSR
格式:MSR{条件} CPSR | SPSR_field,寄存器Rm或立即数
功能:恢复或改变CPSR的值。
CPRS | SPRS:尖括号内只能是CPRS或SPRS指令,这取决于当前处理器工作模式;
field域:用于设置CPSR中需要操作的位;(下面详细介绍)
CPSR位域:

field域的表示:
[31:24]为条件标志位域,用f表示
[23:16]为状态位域,用s表示
[15:8]为扩展位域,用x表示
[7:0]为控制位域,用c表示

表达式举栗:
MSR CPSR,R0 ;传送R0的内容到CPSR
MSR SPSR,R0 ;传送R0的内容到SPSR
MSR CPSR_c,R0 ;传送R0的内容到寄存器CPSR,但是仅修改CPSR的控制位域;

(2)MRS CPSR→通用寄存器;
格式:MRS{条件} 寄存器Rd,CPSR " SPSR
功能:读出CPSR的值;
应用的两种情况:
1. 异常处理或进程切换时,将CPSR的值保存起来
2. 改变CPSR的值的时,改变后在写回数据CPSR
举例:
MRS R0,CPSR
MRS R0,SPSR

MRS和MSR的配合使用可以对CPSR进行修改,修改步骤共分3步:
1. 读取CPSR的值
2. 修改
3. 写入CPSR的值
例程(SVC模式下):使能中断IRQ
MRS R1,CPSR ;读
BIC R1,R1,0x80 ;改,使能位7
MSR CPSR_c,R1 ;写

用户模式下可以读取CPSR,但是只能改变标识位f,只能在特权模式下修改状态寄存器;


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

本文基于ARM9芯片的S3C2440和Linux操作系统,设计了一种SPI驱动程序,该驱动程序功能可靠灵活、易于移植,可应用于多种嵌入式平台,实现ARM与设备之间的通信。

关键字: S3C2440 SPI arm9 Linux ARM

摩托罗拉改进LTE自组织网络解决方案      摩托罗拉公司网络部宣布,对其获奖解决方案LTE自组织网络(SON)进行了数项功能改良,以实现更佳网络

关键字: 处理器 arm9

摘要:本文阐述了嵌入式ARM9系统在发射台自动化系统中的应用,主要实现对发射机的自动化监控,其良好的可在线编程功能,大大增进了友射台管理和减少因软件更新所带来的维护成本。1.概述  

关键字: 监控 无线 arm9

    CDMA(码分多址)网络具有覆盖面广,高效、低成本的特点,CDMA网络的数据传输速率可达200kb/s,这里开发的嵌入式远程视频系统就是充分利用CDMA网络技术和嵌入式

关键字: arm9 远程视频

众所周知,ARM9系列处理器是英国ARM公司设计的主流嵌入式处理器,主要包括ARM9TDMI和ARM9E-S等系列,基于arm9其它公司推出了自己的CPU芯片,如三星推出了S3C2440。还有TI啊,ATMEL啊,高通啊...

关键字: arm9 cpu芯片 处理器

11年就买了2440的板子,但是一直放在那吃灰,最近拿出来玩了下,调通linux和windows下的基本环境就不说了,都是网上找的资料。linux下安装gcc,samba。        现在我们需要

关键字: arm9 Linux

#include "def.h"#include "option.h"#include "2410addr.h"#include "2410lib.h...

关键字: arm9 mmu

ARM体系结构包含一个当前程序状态寄存器(CPSR)和五个备份的程序状态寄存器(SPSRs)。备份的程序状态寄存器用来进行异常处理,其功能包括:─ 保存ALU中的当前操作信息─ 控制允许和禁止中断─ 设置处理器的运行模

关键字: ARM 程序状态寄存器

从开始接触,到驱动编写调试完成,前前后后花费10多天,网上浏览了一下,目前还没有找到硬件SPI控制NRF24L01的驱动程序,绝大多数都是软件SPI,但是软件SPI不好,不稳定,既然都写驱动程序了,肯定要用硬件SPI啦,...

关键字: arm9 nrf24l01 spi 驱动程序

LCD-liquidcrystal display的简称,液晶显示器按驱动方式分为1.静态驱动、2.简单矩阵驱动及3.主动矩阵驱动。其中,简单矩阵又可分为1.扭转向列型(TN)和超转向列型(STN)两种,而主动矩阵驱动则...

关键字: arm9 LCD mini2440 裸机
关闭
关闭