Esta pregunta ya ha sido contestada para x86 sin embargo, no pude encontrar mucho acerca de CPUs ARM MP como Cortex-A9, Cortex-A15, etc ...¿Cómo funcionan las interrupciones en la CPU ARM multinúcleo
más importante i Quiero saber si las interrupciones se pueden generar en la CPU no primaria sin ninguna configuración, etc.
Estoy trabajando en un software que solo se ocupa de la CPU principal, por lo tanto pongo el resto en el estado WFI sin embargo no sé cómo interrumpen trabajar en el MP arm cpus, ¿es posible que la CPU principal continúe ejecutando el código y una de las CPU secundarias la levante y salte a la instrucción en la tabla vectorial y ejecute ese código?
por cierto aquí es el código que estoy usando para ponerlos a modo de bajo consumo
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
¿ha mirado ARM ARM y TRM para el mpcore? –
Sí, menciona algunas cosas sobre GIC y cómo funciona el IPI, pero nada sobre cómo se programan las interrupciones generales. – sgupta