目录
WFE
Wait For Event,是否实现此指令是可选的。如果此指令未实现,它将作为NOP指令来执行。如果指令作为NOP在目标处理器上执行,汇编程序将生成诊断消息。
WFE在ARMv6T2架构中作为NOP指令执行。
如果 Event Register没有被置位,WFE将挂起直到发生以下事件之一:
- An IRQ interrupt, unless masked by the CPSR I-bit.
- An FIQ interrupt, unless masked by the CPSR F-bit.
- An Imprecise Data abort, unless masked by the CPSR A-bit.
- A Debug Entry request, if Debug is enabled.
- An Event signaled by another processor using the SEV instruction.
如果Event Register被置位,则WFE指令会立刻对其进行清零并返回。如果WFE指令在一个架构中被实现了,SEV也必须被实现。
SEV
Set Event,其是否实现是可选的。如果未实现,它将作为NOP执行。如果指令作为NOP在目标上执行,汇编程序将生成诊断消息。
SEV在ARMv6T2中作为NOP指令执行。
SEV导致向多处理器系统中的所有内核发送事件信号。如果实现了SEV,则还必须实施WFE。这两个指令时成对使用的。
SEV和WFE可使用的版本:
- This ARM instruction is available in ARMv6K and above.
- This 32-bit Thumb instruction is available in ARMv6T2 and above.
- This 16-bit Thumb instruction is available in ARMv6T2 and above.
WFI
Wait for Interrupt.WFI将挂起CPU直到发生以下事件之一:
- an exception
- an interrupt becomes pending, which would preempt if PRIMASK was clear
- a Debug Entry request, regardless of whether debug is enabled.