概念
IRQ(Interrupt Request):指中斷模式。
FIQ(Fast Interrupt Request):指快速中斷模式。
IRQ與FIQ是ARM處理器的兩種不同編程模式(ARM有7種處理模式)。
詳述
1、對FIQ你必須進快處理中斷請求,并離開這個模式。
2、IRQ可以被FIQ所中斷,但FIQ不能被IRQ所中斷,在處理FIQ時必須要關閉中斷。
3、FIQ的優先級比IRQ高。
4、FIQ模式下,比IRQ模式多了幾個獨立的寄存器。
不要小看這幾個寄存器,ARM在編譯的時候,如果你FIQ中斷處理程序足夠用這幾個獨立的寄存器來運作,它就不會進行通用寄存器的壓棧,這樣也省了一些時間。
5、FIQ的中斷向量地址在0x0000001C,而IRQ的在0x00000018。(也有的在FFFF001C以及FFFF0018)
寫過完整匯編系統的都比較明白這點的差別,18只能放一條指令,為了不與1C處的FIQ沖突,這個地方只能跳轉,而FIQ不一樣,1C以后沒有任何中斷向量表了,這樣可以直接在1C處放FIQ的中斷處理程序,由于跳轉的范圍限制,至少少了一條跳轉指令。
6、IRQ和FIQ的響應延遲有區別
IRQ的響應并不及時,從Verilog仿真來看,IRQ會延遲幾個指令周期才跳轉到中斷向量處,看起來像是在等預取的指令執行完。FIQ的響應不清楚,也許比IRQ快。
-
嵌入式主板
+關注
關注
7文章
6085瀏覽量
35306 -
米爾科技
+關注
關注
5文章
227瀏覽量
20959
發布評論請先 登錄
相關推薦
評論