我希望了解各种C状态,大部分CPU处于C1状态时进入HLT模式,在深度C状态(如c4)时会进入WFI模式。
我希望了解各种C状态,大部分CPU处于C1状态时进入HLT模式,在深度C状态(如c4)时会进入WFI模式。
HLT用于JTAG,WFI和WFE通常用于常规裸机和用户程序
在ARMv8中,HLT是与调试相关的指令,即GDB用于实现硬件断点/监视点或JTAG使用的指令。
与其他指令一样,它在ARM参考手册中有文档:https://static.docs.arm.com/ddi0487/db/DDI0487D_b_armv8_arm.pdf
我不确定这个具体的指令是做什么的,但手册将其描述为C6.2.84“HLT”:
HLT停机指令。 HLT指令可以生成停机指令调试事件,导致进入调试状态。
第H2章“调试状态”描述了调试状态的含义:
在外部调试中,调试事件允许外部调试器停止PE。 PE然后进入调试状态。
而在更上面,我们看到“外部调试”意味着类似JTAG的调试方法。
因此,除非您正在实现此类调试相关功能,否则不要触摸HLT。
以下是最简单的裸机示例:
HLT
指令存在于 x86 上;它在 ARM 上不存在。 WFI
是最接近的等效指令,并且同样只存在于 ARM 上。这两个指令在各自的体系结构上执行类似的任务。