关于“最大中断延迟”:当fiq使能时,最坏情况是正在执行一条装载所有寄存器的指令“ldm”(它耗时最长),同时发生了fiq和数据中止异常,在响应fiq中断之前要先把正在执行的指令完成,然后先进入数据中止异常,再马上跳转到fiq异常入口,所以延迟时间包含:
(1)tsyncmax,请求通过同步器的最长时间。为2个处理器周期(由内核决定);
(2)tldm,最长的指令执行需要的时间。tldm在零等待状态系统中的执行时间为20个周期。注意,是在零等待状态系统中。一般的基于arm7核的芯片的存储器系统比内核速度慢,造成其不是零等待的;
(3)texc,数据中止入口的时间。texc为3个周期(由内核决定);
(4)tfiq,fiq入口的时间。tfiq为2个周期(由内核决定)。
“fiq总的延迟时间”= syncmax +tldm +texc +tfiq=27个周期
在40mhz处理器时钟时,最大延迟时间略少于0.7us。在此时间结束后,arm7tdmi执行位于0x1c处的指令。
最大的irq延迟时间与之相似,但必须考虑到这样一种情况,当更高优先级的fiq和irq同时申请时,irq要延迟到fiq处理程序允许irq中断时才处理(可能需要对中断控制器进行相应的操作)。irq延迟时间也要相应增加。
关于“最小中断延迟”:fiq或irq的最小中断延迟是请求通过同步器的时间tsyncmin加上tfiq(共4个处理器周期)。