单片机交流
直播中

申换换

7年用户 1501经验值
私信 关注
[问答]

ARM处理器工作模式有哪几种?

ARM处理器工作模式有哪几种?

回帖(1)

张倩

2021-11-5 10:53:54
一、ARM七种处理器工作模式:
  用户模式 usr:正常程序执行模式
  快速中断模式FIQ:用于高速数据传输和通道处理
  外部中断模式IRQ:用于通常的中断处理
  管理模式svc:供操作系统使用的一种保护模式(SWI)
  数据中止中断模式abt:用于虚拟存储及储存保护
  未定义指令中止模式und:用于支持通过软件方针硬件的协处理器
  系统模式sys:用于运行特级的操作系统任务
  除了用户模式,其他六种为特权模式,而六种特权模式除了系统模式之外的都是异常模式。
  二、寄存器
  ARM结构具有31个通用寄存器和6个状态寄存器,都是32位的寄存器;
  通用寄存器分为:备份寄存器、未备份寄存器和程序计数器PC
  1、未备份寄存器:R0-R7
  2、备份寄存器:
  R8-R12在快速中断FIQ情况下会有备份,R13、R14通常作为栈基址指针SP和链接寄存器LR,在异常模式下都会有备份。
  3、程序计数器:R15 PC指针
  使用PC指针注意存在读写不对称的问题,由于AR流水作业,PC指针会指向当前执行指令后两个指针。如果是ARM指令PC指针是当前执行指令地址加两个字,Thumb指令为半字。
  4、状态寄存器:
  CPSR、SPSR在5种异常模式下各自有各自备份寄存器;状态寄存器包含处理器运行模式设置M0-M4,T指示指令模式Thumb或ARM程序;F/I可以选择是否屏蔽FIQ、IRQ中断;N负数、Z零、V符号位溢出、C运算进位及Q增强DSP指令溢出指示。
  三、关于大小端的区别:
  大端-高字节在小地址端;小端-高字节在大地址端。
  四、异常中断及对应的处理器模式
  1、复位reset/软复位 => svc模式 优先级1(越大越低)
  2、未定义指令中止 => undef模式 6
  3、软件中断SWI断点 => svc模式 6
  4、指令预取中止5、数据访问中止2 => abt模式(BKPT)
  5、外部中断 => IRQ 4
  6、快速中断 => FIQ 3
  小贴士:
  正常程序运行在用户模式,系统内核使用到系统模式?
  哪些资源可以设置不同模式下的权限?如内存读写访问的设置权限;
  跳转及变量的定义都会影响效率:跳转会清除指令流水;变量定义小于寄存器长度时需要额外的处理?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分