概念IRQ(Interrupt Request):指中斷模式。 FIQ(Fast Interrupt Request):指快速中斷模式,。 IRQ與FIQ是ARM處理器的兩種不同編程模式(ARM有7種處理模式),。
詳述1,、對(duì)FIQ你必須進(jìn)快處理中斷請(qǐng)求,,并離開(kāi)這個(gè)模式。
2,、IRQ可以被FIQ所中斷,但FIQ不能被IRQ所中斷,,在處理FIQ時(shí)必須要關(guān)閉中斷,。
3、FIQ的優(yōu)先級(jí)比IRQ高,。
4、FIQ模式下,,比IRQ模式多了幾個(gè)獨(dú)立的寄存器。 不要小看這幾個(gè)寄存器,,ARM在編譯的時(shí)候,,如果你FIQ中斷處理程序足夠用這幾個(gè)獨(dú)立的寄存器來(lái)運(yùn)作,,它就不會(huì)進(jìn)行通用寄存器的壓棧,,這樣也省了一些時(shí)間。
5,、FIQ的中斷向量地址在0x0000001C,,而IRQ的在0x00000018。(也有的在FFFF001C以及FFFF0018) 寫(xiě)過(guò)完整匯編系統(tǒng)的都比較明白這點(diǎn)的差別,,18只能放一條指令,,為了不與1C處的FIQ沖突,這個(gè)地方只能跳轉(zhuǎn),,而FIQ不一樣,,1C以后沒(méi)有任何中斷向量表了,,這樣可以直接在1C處放FIQ的中斷處理程序,,由于跳轉(zhuǎn)的范圍限制,,至少少了一條跳轉(zhuǎn)指令,。
6,、IRQ和FIQ的響應(yīng)延遲有區(qū)別 IRQ的響應(yīng)并不及時(shí),,從Verilog仿真來(lái)看,IRQ會(huì)延遲幾個(gè)指令周期才跳轉(zhuǎn)到中斷向量處,看起來(lái)像是在等預(yù)取的指令執(zhí)行完,。FIQ的響應(yīng)不清楚,也許比IRQ快,。
|
|