Monitor exclusivo (LDREX/STREX)
Mecanismo hardware de ARM para lectura-modificación-escritura atómica: una carga marca una dirección y la escritura solo prospera si nadie la ha tocado entretanto.
LDREX lee un valor y pide al monitor que vigile esa dirección. El programa calcula el nuevo valor y STREX intenta escribirlo. Si ha pasado algo mientras tanto —otro núcleo escribió ahí o se coló una interrupción—, la escritura falla, STREX devuelve 1 y el código vuelve a intentarlo. El principio se llama load-linked/store-conditional y ya existía en MIPS; ARM lo incorporó con ARMv6.
En Cortex-M3 y superiores, cada entrada en una excepción borra el monitor, de modo que un incremento en el bucle principal no puede chocar con el mismo incremento en una ISR. El Cortex-M0 carece por completo de estas instrucciones, y por eso allí las operaciones atómicas se hacen deshabilitando interrupciones dentro de una sección crítica.