这个问题已经在 x86 上得到了回答,但是我找不到很多关于 ARM MP cpu 的信息,比如 Cortex-A9、Cortex-A15 等......
更重要的是,我想知道是否可以在没有任何配置等的情况下在非主 CPU 上引发中断。
我正在开发一个只处理主 cpu 的软件,因此我将其余部分置于 WFI 状态,但是我不知道中断如何在 MP arm cpu 上工作,主 cpu 是否有可能继续执行代码和一个辅助 cpu cpu 捡起它并跳转到向量表中的指令并执行该代码?
顺便说一句,这是我用来将它们置于低功耗模式的代码
uint32_t reg;
__asm__ volatile("mrc p15, 0, %0, c0, c0, 5" : "=r" (reg));
reg &= 0xF;
if(reg > 0)
goto spin;
<code snipped>
spin:
for(;;)
cpu_idle(); // cpu_idle -> wfi