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