- UID
- 872238
|
-3 FIQ服务程序
照例看看程序
NESTED_ENTRY FIQHandler
sub lr, lr, #4 ; fix return address
stmfd sp!, {r0-r3, r12, lr}
PROLOG_END
CALL OEMInterruptHandlerFIQ
ldmfd sp!, {r0-r3, r12, pc}^ ; restore regs & return for NOP
ENTRY_END FIQHandler
LTORG
FIQ是arm体系下特有的异常方式,其工作过程与IRQ类似都是由外部引脚触发但设计用途不同,IRQ用于通常的外部中断源的处理,是作为统一、通用的与外部器件交互的手段,而IRQ仅仅用于处理周期短同时又需要快速处理的场合其触发的事件源通常也来此外部FIQ中断。如:更换电池、数据传输这类工作。可想而知FIQ讲究的是快速,精干。因此FIQ服务程序通常没有分发,而仅仅是针对单一的工作进行处理保证处理的实时性。因此FIQ的处理相对IRQ就简单很多,直接调用
OEMInterruptHandlerFIQ进行处理后返回就完成了整个 FIQ服务程序。 |
|