历史上的今天
今天是:2025年02月20日(星期四)
2020年02月20日 | ARM学习笔记1——Arm寄存器与模式的关系
2020-02-20 来源:eefocus
ARM微处理器上有37个32位的寄存器,其中有6个状态寄存器(一个CPSR,5个SPSR),其它31个为通用寄存器。在ARM的不同模式下,可以访问的物理寄存器是不同,如下图所示:

从图中可知,用户模式和系统模式使用相同的物理寄存器,R0-R15,CPSR,共17个物理寄存器;
FIQ模式(快速中断请求模式)中:R0-R7,R15,CPSR是和用户模式相同的物理寄存器,R8-R14是FIQ模式专有的;
IRQ模式(中断请求模式)中:R0-R12,R15,CPSR和用户模式共用相同的物理寄存器,R13,R14,SPSR是IRQ模式专有的
SVC模式(操作系统保护模式)中:R0-R12,R15,CPSR和用户模式共用相同的物理寄存器,R13,R14,SPSR是SVC模式专有的
Undef模式(未定义模式)中:R0-R12,R15,CPSR和用户模式共用相同的物理寄存器,R13,R14,SPSR是Undef模式专有的
Abort模式(终止模式)中:R0-R12,R15,CPSR和用户模式共用相同的物理寄存器,R13,R14,SPSR是Abort模式专有的
注:R13:通常作为栈指针用
R14:link return 寄存器,在子程序调用和异常发生时保存返回地址
R15:是PC,程序计数器,保存取指地址
CPSR:ARM的状态寄存器
SPSR:CPSR的备份寄存器
史海拾趣
|
我是新手,请求达人指点。 mcbsp 的 接受FIFO 中断怎么进不去 我用的是2812 ,由于2812自带的AD 是12位的,不满足我的精度要求,所以我外扩了一个AD转换芯片 AD73360 (16位)。 启动AD73360之后按说应该往回传踩到的数据,可是我在调试的时候怎么老进不去多通道缓冲串口的接受中断呢(接受深度我设置的是8)? ...… 查看全部问答> |
|
需要在开机进入explorer之前把SD卡的几个文件拷到windows目录下。 我不懂驱动,于是瞎试一番。 在sdmemory的sdmemmain.cpp的DllEntry增加拷贝文件函数: 1 extern \"C\" BOOL WINAPI DllEntry(HINSTANCE hInstance, ...… 查看全部问答> |
|
基于WIN CE与s2410的外部中断的实现 断是指在执行程序的过程中,出现了异常情况和特殊请求时,计算机将停止现行程序的运行,转去对这些异常情况或特殊情况进行处理。 一、中断的基本知识 二、wince下关于中断的主要函数及其说明 三、s2410下关 ...… 查看全部问答> |
|
高手帮帮忙啊!我用RDA执行PULL时出现错误提示:An error was encountered wile running this program. 我的代码: Public Const strInternetURL = \"http://localhost/sscesa20.dll\" Public Const strRemoteConnect = \"Provider=SQLOLEDB.1;P ...… 查看全部问答> |
|
故障现象:一辆五十铃汽车在闭合点火开关后,仪表显示正常,但充电指示灯不亮,且将点火开关置于Ⅱ档(起动档)时起动机无反应。 故障排除:检查充电指示灯,充电指示灯显示正常。因为该车充电指示灯受组合继电器控制,所以又拆下组合继电器 ...… 查看全部问答> |




