最近在学习嵌入式底层系统开发,在写启动代码时要设置各个模式的SP,需要调整CPU的工作模式,部分代码如下:
.equ DISABLE_IRQ, 0x80
- .equ DISABLE_FIQ, 0x40
-
- .equ SYS_MOD, 0x1f
- .equ IRQ_MOD, 0x12
- .equ FIQ_MOD, 0x11
- .equ SVC_MOD, 0x13
- .equ ABT_MOD, 0x17
- .equ UND_MOD, 0x1b
msr cpsr_c,#(DISABLE_IRQ|DISABLE_FIQ|SVC_MOD)
- ldr sp,=_SVC_STACK
-
- msr cpsr_c,#(DISABLE_IRQ|DISABLE_FIQ|IRQ_MOD)
- ldr sp,=_IRQ_STACK
-
- msr cpsr_c,#(DISABLE_IRQ|DISABLE_FIQ|FIQ_MOD)
- ldr sp,=_FIQ_STACK
-
- msr cpsr_c,#(DISABLE_IRQ|DISABLE_FIQ|ABT_MOD)
- ldr sp,=_ABT_STACK
-
- msr cpsr_c,#(DISABLE_IRQ|DISABLE_FIQ|UND_MOD)
- ldr sp,=_UND_STACK
-
- msr cpsr_c,#(DISABLE_IRQ|DISABLE_FIQ|SYS_MOD)
- ldr sp,=_SYS_STACK
代码中用到了cpsr_c,那么究竟cpsr_c与cpsr是什么关系?
ARM9的每种工作模式除R0~R15共16个寄存器外,还有第17个寄存器CPSR(Current Program Status Register),叫做当前程序状态寄存器,CPSR中一些位被用于标识各种状态,一些位被用于标识当前出于什么工作模式。CPSR有4个8位区域:标志域(F)、状态域(S)、扩展域(X)、控制域(C)。
在ARM 处理器中,只有MSR 指令可以直接设置状态寄存器CPSR或SPSR。指令格式如下:
MSR{cond} psr_fields,#immed_8r(8位立即数)
MSR{cond} psr_fields,Rm
其中: psr 指CPSR 或SPSR
fields 指定传送的区域。Fields 可以是以下的一种或多种(字母必须为小写):
- c 控制域屏蔽字节(psr[7…0])
- x 扩展域屏蔽字节(psr[27…8])
- s 状态域屏蔽字节(psr[31.…28])
关键字:ARM9 CPSR寄存器
引用地址:
详解ARM9的CPSR寄存器
推荐阅读最新更新时间:2024-03-16 14:46
基于ARM9与Linux的门禁监控系统软件设计
摘要:提出了一种可配置、功耗低的门禁监控系统软件设计方案,该方案基于ARM9与Linux相结合的软硬件平台,同时结合CGI技术实现。系统由前端撮像头,读卡器,门禁控制器以及客户端组成。人员出入的时候,经刷卡后将卡内信息传输到门禁控制器,门禁控制器检测卡权限是否合法以决定是否开门,同时控制前端摄像头摄录图片传输到门禁控制器存储并进行日志记录。用户可以在客户端通过Internet访问门禁控制器,进行人员信息的录入和日志访问等。与传统方法相比,该方案设计在易操作和低成本上具有明显优势。 关键词:嵌入式;门禁;ARM9;CGI;boa服务器;Berkeley DB 门禁,又称出入管理控制系统,是一种管理人员进出的数字化管理系统。目
[嵌入式]
ARM9(S3C2440) LED控制
下面为TQ2440开发板的硬件LED接口: LED控制思想 1、将相应的引脚设置为输出 2、再将相应的引脚设置为低电平 代码实现 src: inc: 2440init.s为开发板开启首先运行的代码。目的:初始化C语言环境。 ; NAME: 2440INIT.S ; DESC: C start up codes ; Configure memory, ISR ,stacks ; Initialize C-variables 。。。。。。 。。。。。。 IMPORT MMU_SetAsyncBusMode IMPORT MMU_SetF
[单片机]
嵌入式ARM9系统在无线发射台智能化监控系统中的应用
1.概述 广西广播电视信息网络股份有限公司按照“有人留守,无人值班”的设计思路开发了一套无线发射台远程网络监控管理系统,对广西1 6座边远广播电视无线发射台进行远程集中监控管理。原监控系统采用下位机和上位机监控的模式,下位机采用以8位单片机为处理核心的单片机系统,这种系统具有集成度低外围扩展电路多、系统主频低、实时响应性慢的缺点,同时单片机与计算机交互需要许多专用的软硬件,不同厂家的发射机甚至同一厂家的不同类别、不同功率等级的发射机对应不同程序,使系统备件增加,而且在需要更新升级的时候只能奔赴发射台现场,这对于有着程序多样性的各类发射机采集控制器来说显得十分繁琐,给维护管理带来极大的不便。随着大规模集成电路和嵌入式技术的
[单片机]
东方嘉科推出ARM9核心模块COM9263
东方嘉科的COM9263是一款基于ATMEL AT91SAM9263的核心模块。AT91SAM9263内置最新ARM926EJ-S arm 内核, 运行在200MHz时拥有220MIPS的运算性能,具有DSP扩展指令,JAVA硬件加速。 COM9263可以连接多种内存设备,大容量硬盘设备,内置网络、串口、USB、CAN、音频、红外,LCD、图像采集与显示等功能。具有丰富的软硬件资源,高集成度、高可靠性、低功耗,可在电力、铁路、通讯、医疗、能源、环保等各种工业控制领域应用。致力缩短用户产品研发周期,提高产品可靠性。 功能概述: 处理器 AT91SAM9263采用ARM926EJ-S ARM Thumb 处理器,具有
[单片机]
基于ARM9处理器的家用远程医疗监护终端
远程医疗是网络科技与医疗技术相结合的产物,随着我国经济的发展、科技的进步以及进入老龄化社会的需要,发展远程医疗已成为一种必然趋势。远程医疗从使用对象上可分为:面向医院的远程医疗系统和面向家庭的远程医疗系统。面向家庭的远程医疗系统的功能包括:远程“看医生”、远程监护、远程医学信息查询/咨询等。 国外的远程家庭医疗更加注重远程“看医生”,个人/ 患者在家中就可与医生进行实时语音、图像信息交流,可实现在线检测人体生理信号并给出诊断。这种系统是以视频会议系统为核心,但目前还难以在我国普及,原因一是该系统的价格太贵,一般家庭承受不起;原因二是受到通信信道带宽的限制,国外一般使用综合业务数字网(ISDN),而我国现在普及到家庭的是普通电
[医疗电子]
s3c2440(ARM9)通用寄存器地址
89c51的通用寄存器组是对应内存的,即在内存中分配地址,那么ARM9的呢? 来源: http://zhidao.baidu.com/link?url=Nf9NDaITEiA4Gc9q6Y4dP3yt xLJPwBjvRhizxtP0hUu6sQaN qUFqPnS7KEfvfjpIJBlzFKFz q-rBNYXSGx1-va s3c2440a 通用寄存器地址:例如R0,R1,R2之类的通用寄存器对应内存的地址??? 这么说,在C编程中,就不存在所谓的R1、R2之类的通用寄存器了?? R0,R1,R2是 寄存器 ,在cpu内部,用于计算和存储访问、存放临时数据、以及一些cpu或程序运行的状态,是不直接对应内存的,所以也就没有
[单片机]
ARM9 2410移植之ARM中断原理, 中断嵌套的误区,中断号的怎么来的
几天前一个学生问我ARM中断嵌套的问题,我才发现原在我心中理所当然的事对学生来说理解实属不易。 ARM有七种模式,我们这里只讨论SVC、IRQ和FIQ模式。 我们可以假设ARM核心有两根中断引脚(实际上是看不见的),一根叫 irq pin, 一根叫fiq pin. 在ARM的cpsr中,有一个I位和一个F位,分别用来禁止IRQ和FIQ的。 先不说中断控制器,只说ARM核心。正常情况下,ARM核都只是机械地随着pc的指示去做事情,当CPSR中的I和F位为1的时候,IRQ和FIQ全部处 于禁止状态。无论你在irq pin和fiq pin上面发什么样的中断信号,ARM是不会理你的,你根本不能打断他,因为他耳聋了,眼也瞎了
[单片机]
基于ARM9处理器的嵌入式指纹识别系统设计
0 引言 指纹鉴定是人身识别最重要的手段之一, 指纹自动识别系统给指纹鉴定工作提供了一个新的平台, 并使指纹自动识别系统在身份认证方面具有更广阔的前景。目前, 自动指纹识别系统一般都是联机的, 大多数系统都选用指纹传感器来采集, 并以计算机(PC) 作为主机来处理, 从而对指纹进行匹配。而本文提出的基于ARM9的嵌入式指纹识别系统则是把采集和处理集于一身的独立系统, 因而可以做得很小, 比较适合用于高档汽车门、防盗门以及公*勤系统等场合。嵌入式系统是指以应用为中心, 以计算机技术为基础, 软硬件可裁剪, 其应用系统对功能、可靠性、成本、体积和功耗等要求都比较严格的专用计算机系统。本文选用SAMSUNG的S3C2440A作为嵌入式指
[单片机]