WFE指令如何工作?我读到的是它使处理器等待IRQ / FIQ / event /。
但是,当您收到IRQ时,会在获取中断或执行WFE之后的指令时执行irq_fault_handler向量吗?
WFE在概念上等同于
while (!event_has_occurred) /*do nothing*/;
Run Code Online (Sandbox Code Playgroud)
除了它关闭CPU而不是运行紧密循环外。
可以中断WFE的几件事情,不仅包括中断,还包括来自另一个CPU(在多核处理器中)的显式唤醒事件。
如果在WFE期间发生中断,则通常会发生。处理器切换到IRQ或FIQ模式,跳转到IRQ或FIQ处理程序,并将WFE指令的地址(加上通常的偏移量8)放入lr。
如果CPU被显式的唤醒事件唤醒,则执行WFE之后的下一条指令。
将WFE视为一个很长的NOP,它仅在某些外部事件发生时才完成。
| 归档时间: |
|
| 查看次数: |
2819 次 |
| 最近记录: |