ARM内核中寄存器的浅见
2017-11-02 01:17
225 查看
ARM内核中寄存器的浅见
源地址:http://blog.csdn.net/dennisgang/article/details/52252386我们先来看一张图:
这张图是ARM手册中的寄存器状态图,我想大部分人应该首先会想到它吧。正如手册中所讲的,这张图中包含37个32位寄存器,其中有31个通用寄存器和6个状态寄存器。CPU会根据不同的工作模式,使部分寄存器可见(即可被使用),图中有灰色下标的正是不同模式下可见的寄存器,被称为分组寄存器。未分组的寄存器在不同模式下都是可见的,但是在寄存器使用时,分组寄存器会屏蔽共享寄存器,从而实现特殊用途。
37个寄存器实际如下图所示:
转换成我们熟悉的手册中的图,如下图:
我们需要特殊指出几个寄存器:
1、R13 ——> SP,为堆栈寄存器,用于C语言类程序之间调用所需的空间指针;
2、R14 ——> LR,为连接寄存器,在发生程序调用时,一般用户存放程序返回地址;
3、R15 ——> PC,为程序计数寄存器,存放西一条要执行的程序码地址。
程序状态寄存器
CPSR(Current Program Status Register)表示当前程序状态寄存器,SPSR(Saved
Program Status Register)用来保存异常程序处理个程序状态,这些寄存器的格式和功能见下图所示。
寄存器的具体详细描述见数据手册,另外我们在贴一张Thumb指令下的寄存器和对比图
相关文章推荐
- ARM内核寄存器 两种状态 7种工作模式
- ARM 内核SP,LR,PC寄存器
- ARM 内核SP,LR,PC寄存器
- ARM 内核SP,LR,PC寄存器
- ARM内核寄存器的操作函数
- linux-2.6.26内核中ARM中断实现详解(3)
- linux-2.6.26内核中ARM中断实现详解(2)
- ARM处理机模式--内部寄存器
- ARM寄存器的8种寻址方式01
- arm下如何烧写指定分区大小的内核和文件系统
- 《Cortex™-A系列编程者指南(V3.0)》第4章<ARM寄存器、工作模式和指令集>笔记
- 深入理解ARM的SP LR PC这三个寄存器
- ARM学习总结1->寄存器初始值问题
- 嵌入式 内核编译总是遇到make: ***/root/build_kernel/linux-2.6.14.1/arch/arm 是目录
- ARM架构与内核版本
- linux-3.2.36内核启动1-启动参数(arm平台 启动参数的获取和处理,分析setup_arch)
- 内核编译 出错 arm-linux-gcc: not found
- linux-2.6.26内核中ARM中断实现详解(转)
- 如何在安卓系统上使用arm-linux-gdb调试内核
- Linux内核ARM构架中原子变量的底层实现研究