Diese Frage bereits jedoch für x86 beantwortet wurde, kann ich nicht viel über ARM MP CPUs wie Cortex-A9, Cortex-A15 usw. finden ...Wie funktionieren Interrupts auf Multi-Core-ARM-CPU
Noch wichtiger ist i möchte wissen, ob Interrupts auf nicht-primären CPU ohne irgendeine Konfiguration usw. ausgelöst werden können.
Ich arbeite an einer Software, die nur mit der primären CPU beschäftigt, daher ich den Rest in WFI-Zustand, aber ich bin mir nicht bewusst, wie Interrupts Arbeit am MP-Arm cpus, Ist es möglich, dass die Haupt-CPU weiterhin Code ausführt und eine der sekundären CPU es aufhebt und springt zu der Anweisung in der Vektortabelle und führt diesen Code aus?
btw hier ist der Code, den ich mit ihnen zu Low-Power-Modus zu schalten
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
hast du den ARM ARM und TRM für den mpcore angeschaut? –
Ja, es erwähnt einige Dinge über GIC und wie IPI funktioniert, aber nichts darüber, wie allgemeine Interrupts geplant sind. – sgupta