關(guān)于“最大中斷延遲”:當fiq使能時,最壞情況是正在執(zhí)行一條裝載所有寄存器的指令“l(fā)dm”(它耗時最長),同時發(fā)生了fiq和數(shù)據(jù)中止異常,在響應(yīng)fiq中斷之前要先把正在執(zhí)行的指令完成,然后先進入數(shù)據(jù)中止異常,再馬上跳轉(zhuǎn)到fiq異常入口,所以延遲時間包含:
(1)tsyncmax,請求通過同步器的最長時間。為2個處理器周期(由內(nèi)核決定);
(2)tldm,最長的指令執(zhí)行需要的時間。tldm在零等待狀態(tài)系統(tǒng)中的執(zhí)行時間為20個周期。注意,是在零等待狀態(tài)系統(tǒng)中。一般的基于arm7核的芯片的存儲器系統(tǒng)比內(nèi)核速度慢,造成其不是零等待的;
(3)texc,數(shù)據(jù)中止入口的時間。texc為3個周期(由內(nèi)核決定);
(4)tfiq,fiq入口的時間。tfiq為2個周期(由內(nèi)核決定)。
“fiq總的延遲時間”= syncmax +tldm +texc +tfiq=27個周期
在40mhz處理器時鐘時,最大延遲時間略少于0.7us。在此時間結(jié)束后,arm7tdmi執(zhí)行位于0x1c處的指令。
最大的irq延遲時間與之相似,但必須考慮到這樣一種情況,當更高優(yōu)先級的fiq和irq同時申請時,irq要延遲到fiq處理程序允許irq中斷時才處理(可能需要對中斷控制器進行相應(yīng)的操作)。irq延遲時間也要相應(yīng)增加。
關(guān)于“最小中斷延遲”:fiq或irq的最小中斷延遲是請求通過同步器的時間tsyncmin加上tfiq(共4個處理器周期)。