一、對FIQ你必須進快處理中斷請求,並離開這個模式。編譯
二、IRQ能夠被FIQ所中斷,但FIQ不能被IRQ所中斷,在處理FIQ時必需要關閉中斷。請求
三、FIQ的優先級比IRQ高。程序
四、FIQ模式下,比IRQ模式多了幾個獨立的寄存器。時間
不要小看這幾個寄存器,ARM在編譯的時候,若是你FIQ中斷處理程序足夠用這幾個獨立的寄存器來運做,它就不會進行通用寄存器的壓棧,這樣也省了一些時間。系統
五、FIQ的中斷向量地址在0x0000001C,而IRQ的在0x00000018。(也有的在FFFF001C以及FFFF0018)
寫過完整彙編系統的都比較明白這點的差異,18只能放一條指令,爲了避免與1C處的FIQ衝突,這個地方只能跳轉,而FIQ不同,1C之後沒有任何中斷向量表了,這樣能夠直接在1C處放FIQ的中斷處理程序,因爲跳轉的範圍限制,至少少了一條跳轉指令。
六、IRQ和FIQ的響應延遲有區別
IRQ的響應並不及時,從Verilog仿真來看,IRQ會延遲幾個指令週期才跳轉到中斷向量處,看起來像是在等預取的指令執行完。FIQ的響應不清楚,也許比IRQ快。