历史上的今天
今天是:2024年10月22日(星期二)
2019年10月22日 | ARM一些总结
2019-10-22 来源:51hei
ARM处理器共有37个寄存器:
1) 31个通用寄存器,包括程序计数器(PC)。这些寄存器都是32位的;
2)6个状态寄存器。这些寄存器也是32位的,但是只使用了其中的12位。
ARM通用寄存器
通用寄存器(R0-R15)可分为三类:不分组寄存器R0~R7;分组寄存器R8~R14;程序计数器PC。
1)不分组寄存器R0~R7
不分组寄存器R0~R7在所有处理器模式下,它们每一个都访问一样的32位寄存器。它们是真正的通用寄存器,没有体系结构所隐含的特殊用途。
2)分组寄存器R8~R14
分组寄存器R8~R14对应的物理寄存器取决于当前的处理器模式。若要访问特定的物理寄存器而不依赖当前的处理器模式,则要使用规定的名字。
寄存器R8~R12各有两组物理寄存器:一组为FIQ模式,另一组为除了FIQ以外的所有模式。寄存器R8~R12没有任何指定的特殊用途,只是在作快速中断处理时使用。寄存器R13,R14各对应6个分组的物理寄存器,1个用于用户模式和系统模式,其它5个分别用于5种异常模式。寄存器R13通常用做堆栈指针,称为SP;寄存器R14用作子程序链接寄存器,也称为LR。
3)程序计数器PC
寄存器R15用做程序计数器(PC)。
ARM程序状态寄存器
在所有处理器模式下都可以访问当前的程序状态寄存器CPSR。CPSR包含条件码标志,中断禁止位,当前处理器模式以及其它状态和控制信息。每种异常模式都有一个程序状态保存寄存器SPSR。当异常出现时,SPSR用于保存CPSR的状态。
CPSR和SPSR的格式如表所示:
1)条件码标志:
N,Z,C,V大多数指令可以检测这些条件码标志以决定程序指令如何执行。
2)控制位:
最低8位I,F,T和M位用做控制位。当异常出现时改变控制位。当处理器在特权模式下也可以由软件改变。
中断禁止位:I置1则禁止IRQ中断;F置1则禁止FIQ中断。
T位:T=0指示ARM执行;T=1指示Thumb执行。在这些体系结构系统中,可自由地使用能在ARM和Thumb状态之间切换的指令。
模式位:M0,M1,M2,M3和M4(M[4:0])是模式位,这些位决定处理器的工作模式,如表所示。
3)其他位
程序状态寄存器的其他位保留,用作以后的扩展。
ARM核工作在用户模式,R0~R15可用。
存储器格式
ARM体系结构将存储器看作是从零地址开始的字节的线性组合。字节零到字节三放置第一个字(WORD),字节四到字节七存储第二个字,以此类推。
ARM体系结构可以用两种方法存储字数据,分别称为大端格式和小端格式。
大端格式
在这种格式中,字数据的高位字节存储在低地址中,而字数据的低位字节则存放在高地址中
小端格式
在这种格式中,字数据的高位字节存储在高地址中,而字数据的低位字节则存放在低地址中
上一篇:嵌入式ARM学习知识
下一篇:ARM裸机篇-串口UART实验
史海拾趣
|
protel dxp中为什么没有intel的元件,到那可以下载到啊,谁能告诉我一下。 另外,在99se中有元件库Intel Databooks.ddb,怎么把他导入dxp中使用。… 查看全部问答> |
|
创意无限,只要你肯去做,水杯穿洞有点难度,需要家里电动工具齐全点就可以做,这个因该是最好看得一个,剩下的就比较简单,电子表的包装盒做大功率led外壳,散热真不错呢,至于汽车空气净化器不知大家见过没,像一个滚筒的芯,里面是纸地,外面是 ...… 查看全部问答> |
|
昨天看了一下电路图,发现内存(SDRAM)和2440接口有点不可思议(后来发现ATmel的ARM也是这么接的),后来仔细对比。 发现问题在LDQM,UDQM这两个引脚,他们接到2440的四个nWBE引脚。内存资料是这么说的:Data Input/Output Mask Controls output ...… 查看全部问答> |
|
公司现在高薪诚聘bss基站高级软件开发工程师(精通C++,两年以上C++研发经验,英语流利)! 工作地点:北京望京(爱立信总部) 可直接向我资讯 &nbs ...… 查看全部问答> |
|
请教PC主板关于BIOS的启动顺序??及如何在主板启动时屏蔽BIOS启动信息??? 请教PC主板关于BIOS的启动顺序??及如何在主板启动时屏蔽BIOS启动信息??? 本人现用PC104主板写DOS软件,但是主板启动后有自检信息,但是领导要求在主板启动时,不要显示主板自检信息,取代以LOGO,请个位多多赐教!!! ...… 查看全部问答> |
|
[color]第一步 打开一个ISE工程,随便哪一个有HDL组成的都可以,我打开的如下:第二步 进行综合,修改自己的错误。综合成功。 第三步,在区域2中点击区域3的选项运行,一定不要选择区域3上面的那个选项,出现如下界面:在 ...… 查看全部问答> |
|
vcredist_x86.exe 每次我一安装都出现这个提示,请问这是怎么回事,该怎么解决?谢谢 vcredist_x86.exe 每次我一安装都出现这个提示,请问这是怎么回事,该怎么解决?谢谢 无法访问 Windows Installer 服务 Windows Installer 没有正确安装时可能发生这种情况。 请与技术支持人员联系以获得帮助。… 查看全部问答> |
|
求教一个问题,我在写彩屏液晶的程序的时候,有16为驱动的程序有8位驱动的程序。有时候都能用,但有时候会就不能用,求分析哈。 TFT彩屏IC:9320 or 9325 接口声明: #define DATAOUT(x) GPIOB->ODR=x; //数据输出 #define DATAOUTH(x) GPIOB-> ...… 查看全部问答> |




