SEV/WFE/WFI

目录

WFE

SEV

WFI


WFE

Wait For Event,是否实现此指令是可选的。如果此指令未实现,它将作为NOP指令来执行。如果指令作为NOP在目标处理器上执行,汇编程序将生成诊断消息。

WFE在ARMv6T2架构中作为NOP指令执行。

如果 Event Register没有被置位,WFE将挂起直到发生以下事件之一:

  1. An IRQ interrupt, unless masked by the CPSR I-bit.
  2. An FIQ interrupt, unless masked by the CPSR F-bit.
  3. An Imprecise Data abort, unless masked by the CPSR A-bit.
  4. A Debug Entry request, if Debug is enabled.
  5. 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.

上一篇:babel实战--如何在项目中使用babel


下一篇:uni-app调用第三方程序打开指定的URL,即调用手机浏览器下载文件