1-2 ARM概况

本文详细介绍了ARM架构中的核心组件,包括不同型号芯片的对比、ARM的工作模式、寄存器的功能及使用场景等内容。针对ARM的不同模式及其对应的寄存器配置进行了说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.  一些对比

    芯片      6410     210     2440

    ARM核     arm11    A8      arm9

    指令结构  armv6    armv7   armv4


    芯片手册(S342440)中的Product Overview可查看ARM核

    ARM核手册(ARM920T)可查看指令结构

  S3C2440 S3C6410 S5PV210
处理速度 405-533MHZ 533-667MHZ 800-1024MHZ
缓存 16K 16K 32K
内存接口 SDRAM SDRAM/DDR DDR/DDR2
支持的OS Linux,Wince Linux,Wince,安卓 Linux,Wince,安卓


2.  ARM工作模式(参考《ARM Architecture Reference Manual》ARM体系结构参考手册)

USER usr 普通应用程序运行的普通模式,Linux用户态程序运行在该模式下
FIQ fiq 快速中断模式
IRQ irq 普通中断模式
Superviso svc 保护模式,系统级运行模式,Linux内核运行于该模式下
Abort abt 异常模式,访问虚拟内存时用
Undefind und 未定义模式,执行非ARM指令时用
System sys 系统模式,ARMv4以上才有的模式


3.  ARM寄存器

不分组的r0-r7(8个) 分组寄存器r8-r14(23个) 程序计数器PC(1个)
r0-r7 7个工作模式(共享) 8 个
r8-r12 irq,usr,sys,svc,abt,und(共享) 5 个
  fiq(独享) 5 个
r13,r14 usr,sys(共享) 2 个
  irq,fiq,svc,abt,und(独享) 5 X 2 = 10 个
r15 7个工作模式(共享) 1 个
CPSR 7个工作模式(共享) 1 个
SPSR svc,abt,und,irq,fiq(独享) 5 X 1 = 5 个


r13  充当SP(stack pointer)堆栈指针

r14  充当LR链接寄存器,保存寄存器返回地址,以及中断后的返回地址

r15  程序计数器PC指针

31 30 29 28     27 ~ 8   7 6 5 4 3 2 1 0
N Z C V 保留 I F T M4 M3 M2 M1 M0
                                   
N Negative/Less Than           I   IRQ disable
Z Zero                   F   FIQ disable
C Carry/Borrow/Extend           T   State bit  
V Overflow                 M0~4 Mode bits  


        3.1  条件码标志

         N、Z、C、V均为条件码标志位。它们的内容可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行。条件码标志各位的具体含义如下表所示:


标志位 含                                义
N 当用两个补码表示的带符号数进行运算时,N=1表示运算的结果为负数;N=0表示运算的结果为正数或零
Z Z=1表示运算的结果为零,Z=0表示运算的结果非零。
C 可以有4种方法设置C的值:
 -加法运算(包括CMP):当运算结果产生了进位时(无符号数溢出),C=1,否则C=0。
 -减法运算(包括CMP):当运算时产生了借位时(无符号数溢出),C=0,否则C=1。
 -对于包含移位操作的非加/减运算指令,C为移出值的最后一位。
 -对于其它的非加/减运算指令,C的值通常不会改变。
V 可以有2种方法设置V的值:
 -对于加减法运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,V=1表示符号位溢出
 -对于其它的非加/减运算指令,V的值通常不会改变。
Q 在ARM V5及以上版本的E系列处理器中,用Q标志位指示增强的DSP运算指令是否发生了溢出。在其它版本的处理器中,Q标志位无定义


  在ARM状态下,绝大多数的指令都是有条件执行的;在THUMB状态下,仅有分支指令是条件执行的。


        3.2 控制位

        CPSR的低8位(包括I、F、T和M[4:0])称为控制位,当发生异常时这些位可以被改变。如果处理器运行于特权模式时,这些位也可以由程序修改。

        中断禁止位I、F:置1时,禁止IRQ中断和FIQ中断。

        T标志位:该位反映处理器的运行状态。当该位为1时,程序运行于THUMB状态,否则运行于ARM状态。该信号反映在外部引脚TBIT上。在程序中不得修改CPSR中的TBIT位,否则处理器工作状态不能确定。

        运行模式位M[4:0]:这几位是模式位,这些位决定了处理器的运行模式。具体含义如下表所示:

        保留位:CPSR中的其余位为保留位,当改变CPSR中的条件码标志位或者控制位时,保留位不要改变,在程序中也不要用保留位存储数据。保留位将用于ARM版本的扩展。


M[4:0] 处理器模式 ARM模式可访问的寄存器 THUMB模式可访问的寄存器
0b10000 用户模式 PC,CPSR,R0~R14 PC,CPSR,R0~R7,LR,SP
0b10001 FIQ模式 PC,CPSR,SPSR_fiq,R14_fiq~R8_fiq,R0~R7 PC,CPSR,SPSR_fiq,LR_fiq,SP_fiq,R0~R7
0b10010 IRQ模式 PC,CPSR,SPSR_irq,R14_irq~R13_irq,R0~R12 PC,CPSR,SPSR_irq,LR_irq,SP_irq,R0~R7
0b10011 管理模式 PC,CPSR,SPSR_svc,R14_svc~R13_svc,R0~R12 PC,CPSR,SPSR_svc,LR_svc,SP_svc,R0~R7
0b10111 中止模式 PC,CPSR,SPSR_abt,R14_abt~R13_abt,R0~R12 PC,CPSR,SPSR_abt,LR_abt,SP_abt,R0~R7
0b11011 未定义模式 PC,CPSR,SPSR_und,R14_und~R13_und,R0~R12 PC,CPSR,SPSR_und,LR_und,SP_und,R0~R7
0b11111 系统模式 PC,CPSR,R0~R14 PC,CPSR,LR,SP,R0~R74


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值