ARM Cortex: Mutex mit Bit-Banding

Gegeben, dass ich auf dem ARM Cortex M3:

atomisch ein einzelnes Bit lesenatomisch ein einzelnes Bit setzenatomisch ein einzelnes Bit löschen

Wie kann ich diese für eine Reihe von Operationen im Mutex-Stil kombinieren?

try lock
take lock
release lock

Es scheint, dasstry_lock odertake_lock würde zwei Operationen erfordern, die nicht atomar wären.

Brauche ich mehr Kontrolle, um dies zu erreichen? Globale Interrupts deaktivieren würde es tun, aber es scheint, dass es einen chirurgischeren Ansatz geben sollte.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage