1. CPSR界说
31 30 29 28 27 7 6 5 4 3 2 1 0
N Z C V Q I F T M4 M3 M2 M1 M0
N:当时指令运算成果的31位数值,当有符号数运算时分,N=1表明成果为负数,N=0表明为零或许正数;
Z:Z=1表明运算成果为0;cmp指令履行的时分,Z=1表明比较的两个数持平;
C:溢出指示……
I:I=1 制止IRQ中止;
F:F=1 制止FIQ中止;
T:T=1 thumb;指示正在履行的是arm or thumb
M4-M0:操控处理区所在的形式,七种形式之一
=============================
VIC : Vectored Interrupt Controller
1. ARM Core有2个中止输入: IRQ / FIQ
VIC担任办理外设部件的中止信号,是外设中止源和ARM CPU之间的Bridge.
VIC具有32个中止恳求输入,可将其编程分为3类:
(1) FIQ,
FIQ(fast interrpt request)快速中止恳求要求具有最高优先级。假如分配给FIQ的恳求多于一个,VIC将中止恳求相或后向ARM处
理器发生FIQ信号。当只要一个中止被分配为FIQ时可完成最短的FIQ等候,但假如分配给IFIQ级的中止多于1个,FIQ服务程序需
要读取FIQ状况寄存器来辨认发生中止恳求的FIQ中止源!
(2) 向量IRQ
向量IRQ具有中等优先级。该等级可别离32个恳求中止的16个。32个恳求种的恣意一个都可分配到16个向量IRQ slot中的恣意一
个,其间slot0具有最高优先级
(3) 非向量IRQ。
非向量IRQ的优先级最低
2. 向量中止、非向量中止
(1) 向量中止便是不同的中止有不同的进口地址,
向量中止实时性好,非向量中止简略。向量者,矢量也,即指方向,门道。
向量中止——由硬件供给中止服务程序进口地址;
VIC的vecaddr中寄存的便是真实的中止服务程序的地址,直接取出来跳过去履行就能够了。所以向量中止较快。
向量中止形式用于RESET、NMI、反常处理。
当向量中止发生时,操控器直接将PC赋值,如跳刿x0000000d处,而在0x0000000d地址处一般放置
ISR服务程序地址LDR PC, =ISR_HANDLER
(2) 非向量中止就只要一个进口地址,进去了在判别中止标志来辨认详细是哪个中止。
非向量中止——由软件件供给中止服务程序进口地址
他履行的效果便是判别究竟是发生了那个非向量中止,然后再转向真实要被履行的中止服务程序。
非向量中止形式,有一个寄存器标识位,跳转到一致的函数地址,此函数经过判别寄存器标识位和优
先级联系进行中止处理
能够看作是一个指定了向量地址的中止。
非向量中止形式处理方式是一种传统的中止处理办法,当体系发生中止的时分,体系将INTPND寄存器
中对应标志方位位,然后跳转到坐落x18处的一致中止函数中;该函数经过读取INTPND寄存器中对应
标志位来判别中止源,并依据优先级联系再跳到对应中止源的处理代码中处理中止
3. 为什么会有向量IRQ和非向量IRQ?
44B0X 是根据ARM7TDMI的芯片。ARM系列内核关于IRQ中止的处理便是经过查询中止标志寄存器来确
定中止源,并履行对应的中止服务程序,这也便对错向量中止处理办法了?
4B0X的厂家三星为了加速IRQ中止的呼应速度,在此基础上添加了别的一种办法,其实也便是单片机中
都选用的固定中止向量地址的办法,很明显这种办法减少了中止呼应的时刻?