arm处理器编程模型

来源:互联网 发布:java中网络编程详解 编辑:程序博客网 时间:2024/06/11 22:09

arm9微处理器的工作模式

7种工作模式:
1、用户模式,不能直接进行处理器模式的切换,可以通过异常处理过程进行切换
2、系统模式,可直接进行处理器模式的切换,可访问所有系统资源,主要供操作系统任务使用
3、异常模式包括快速中断模式、外部中断模式、特权模式、数据访问中止模式、未定义指令中止模式,每一种异常模式都有一组寄存器供相应的异常处理程序使用。

arm9微处理器的寄存器组织

1、31个通用寄存器,6个状态寄存器。
2、任意时刻(也就是任意的处理器模式下)可见的是未备份寄存器r0-r7,备份寄存器r8-r14,一个或两个状态寄存器和程序计数器PC。
3、r0-r7在所有的处理器模式下都是指同一个物理寄存器,r8-r12在用户模式下指物理寄存器r8_urs-r12_urs,在fiq模式下指物理寄存器r8_fiq-r12_fiq。r13_mode,r14_mode指mode模式下的特定物理寄存器。
4、r13用作栈指针,r14又被称为是链接寄存器,r15被称为是程序计数器。
5、程序状态寄存器,用户模式和系统模式使用CPSR(当前程序状态寄存器)。进入异常模式时,会使用SPSR(备份程序状态寄存器)保存CPSR的内容能够,异常中断程序退出时,用SPSR恢复CPSR的内容。

程序状态寄存器

CPSR格式
1、条件标志位N、Z、C、V
2、Q位
3、控制位:包括中断禁止位I关闭IRQ;F关闭FRQ。T控制指令是32位arm指令还是16位thumb指令。bit[4-0]控制处理器模式
4、其他位

arm9微处理器中的存储系统

1、存储空间2的32次方个字节单元。地址编码为无符号32位整数,范围为0到2的32次方减1
2、数据的存储格式
2.1、大端法:字数据的高字节存储在低地址中
2.2、小端法:字数据的高字节存储在高地址中
3、数据类型包括32bit字类型,占4字节单元,16bit半字类型,占2字节单元,8bit字节类型,占1字节单元。
大端法或小端法

异常

1、arm9处理器所支持的异常包括复位异常中断、未定义指令异常中断、指令预取中止异常中断、数据访问中止异常中断、外部中断请求异常中断、快速中断请求异常中断等。
2、arm9处理器对异常中断的响应过程
2.1、在LR中保存当前执行指令的下一条指令的地址,即:LR=PC-4;
2.2、将CPSR复制到适当的SPSR中;
2.3、将CPSR模式位强制设置为与异常类型相对应的值;
2.4、强制PC从相关的异常向量处取指。
2.5、ARM9内核在处理中断异常时置位中断禁止标志,这样可以防止不受控制的异常嵌套。
进入异常的示意图:
这里写图片描述

3、从异常中断处理程序中返回
3.1、将LR(R14)中的值减去偏移量后存入PC,偏移量根据异常的类型而有所不同;
3.2、将SPSR的值复制回CPSR;
3.3、清零在入口置位的中断禁止标志

0 0