處理器的當(dāng)前程序狀態(tài)寄存器CPSR中,最低8位為控制位,其中有中斷禁止標(biāo)志位I和F。
當(dāng)發(fā)生異常時(shí),控制位改變。當(dāng)處理器在一個(gè)特權(quán)模式下操作時(shí),可用軟件操作這些位。
向量中斷控制器
LP2000系列的ARM屬于面向工業(yè)領(lǐng)域的微控制器,這要求處理器必須能夠正確快速地響應(yīng),并且處理多個(gè)外部事件(特別是緊急事件)的能力。
ARM內(nèi)核本身只有快速中斷FIQ和普通中斷IRQ這2條中斷線,也就是說(shuō)只能接受2個(gè)中斷,因此不經(jīng)特殊處理無(wú)法處理2個(gè)以上中斷事件。于是,設(shè)置了 向量中斷控制器(Vectored Interrupt Controller,VIC),它使得LP2000系列ARM具備了快速處理多個(gè)外部中斷事件的能力。
中斷控制系統(tǒng)
LPC2000系列ARM的中斷系統(tǒng)可以分3個(gè)層次,如圖所示。其最外層為數(shù)量眾多的外設(shè),外設(shè)可產(chǎn)生中斷信號(hào)。處在最里層的為ARM內(nèi)核,它通過(guò)IRQ和FIQ兩根中斷信號(hào)線接收外部的中斷請(qǐng)求信號(hào),并根據(jù)當(dāng)前程序狀態(tài)寄存器CPSR的I和F位來(lái)決定ARM內(nèi)核是否要響應(yīng)中斷請(qǐng)求。處在中間層的是向量中斷控制器(VIC),它的作用在于 承前啟后,管理外設(shè)部件的中斷信號(hào),并且將其分配到ARM內(nèi)核的僅有2根中斷請(qǐng)求信號(hào)線上。

? ? 以中斷為主線,貫穿整個(gè)CPU,滲透到各個(gè)部件,起到紐帶作用:
內(nèi)核到外設(shè)是以中斷為主干線,外設(shè)為枝干,構(gòu)成了“中斷關(guān)聯(lián)多叉樹(shù)”。
至于后面使用外設(shè),只要抓住中斷和外設(shè)的使用。
LPC2000系列ARM的VIC特性
最多32個(gè)中斷請(qǐng)求輸入;
16個(gè)向量中斷;
16個(gè)優(yōu)先級(jí),可動(dòng)態(tài)分配優(yōu)先級(jí);
可產(chǎn)生軟件中斷。
ARM內(nèi)核的7種模式,全部共享一個(gè)程序狀態(tài)寄存器CPSR,并且ARM內(nèi)核也是通過(guò)CPSR來(lái)監(jiān)視和控制內(nèi)部操作的。CPSR中的I和F位就是用于控制IRQ和FIQ模式的使能。
中斷禁止標(biāo)志位
標(biāo)志位I和F都是中斷禁止標(biāo)志位,用于使能或禁止ARM的2種外部中斷源。CPU的大多數(shù)外設(shè)都會(huì)與這2條中斷線相連。要禁止任何一個(gè)中斷源,要將對(duì)應(yīng)位置1,而不是0。
問(wèn)題:CPU什么條件下,可以響應(yīng)中斷?
當(dāng)控制位I為1,IRQ中斷被禁止,否則允許IRQ中斷使能。FIQ也是如此。允許的意思是。CPU內(nèi)核可以響應(yīng)中斷了。
問(wèn)題:什么條件CPU才能響應(yīng)外設(shè)的中斷?
問(wèn)題:什么條件下,CPU的外設(shè)會(huì)產(chǎn)生中斷?