ARM的工作模式和中断流程

ARM体系结构中有七个工作模式:

0b10000  usr  用户模式,一般的,唯一没有特权的模式,也是正常工作模式,不能切换到其他模式

0b10001  FIQ  快中断模式,用于高速数据传输,快中断响应的工作模式

0b10010  irq   中断模式,通用中断处理,一般中断响应的工作模式

0b10011  supervisor 管理模式,操作系统保护模式,复位和软件中断响应的工作模式

0b10111  abort      中止模式,虚拟内存和存储器保护模式,指令预取中止和数据访问中止响应的工作模式

0b11011  undefined  未定义模式,用于软件仿真,未定义指令中断响应的工作模式

0b11111   system    系统模式,非异常的特权模式。

总结:1.只有usr用户模式是唯一非特权工作模式。2.只有usr用户模式和sys系统模式是非异常工作模式。

 

中断定义:在程序的正常运行中,出现了紧急事件,CPU收到一个中断信号,然后中止正常程序的运行,转去处理相应的中断服务程序,并在中断处理完后,返回到正常程序的运行。


ARM体系结构中七个中断:

中断向量地址,中断名称,中断优先级,中断模式

0x00复位(reset): 1   svc 

复位引脚有效产生复位异常中断,程序跳转到子程序执行;复位情况加电,复位按键直接跳转到复位中断服务子程序

0x04未定义指令(undefined instruction):6   und

0x08软件中断:用户自定义的中断指令,目的是为了获取到特权 6   svc

0x0c指令取中止 5   abt

0x10数据访问中止 2    abt

0x14

0x18外部中断请求(IRQ) 4 fiq

0x1c快中断请求(FIQ) 3   irq

 

psr状态寄存器

位数:31  30  29   28 -------------------------------7  6  5  4  3  2  1  0

           N   Z   C   V                                          I  F  T  M5------------M1

N:负数

Z:零

C:进位或借位

V:溢出

I:IRQ禁止

F:FIQ禁止

T:Thumb状态

M5--M1:工作模式位

 

中断流程

用自己的理解来说就是:1.CPU发现中断,捕获中断信号。2.CPU保护好现场状态。3.CPU跳转到相应的中断服务子程序,解决中断问题。4.程序员清空中断,恢复保护好的现场状态。

 

官方解释:(参考mini2440文档)

1.       中断控制器捕获当前外设发出的中断信号,通知SOC

2.       SOC保存当前程序的运行环境,然后调用中断服务程序(ISR)来处理中断

3.       在ISR中通过读取中断控制寄存器,外设的相关寄存器来识别是哪一个中断触发,获取硬件中断号IRQ,跳转到相应的处理例程完成中断处理

4.       清除中断:通过读取相关中断控制寄存器和外设相关的寄存器来实现

      最后恢复被中断程序的环境,继续执行

你可能感兴趣的:(嵌入式基础)