Córtex ARM: mutex usando bandas de bits

Dado que, no ARM Cortex M3, posso:

ler atomicamente um único bitdefinir atomicamente um único bitlimpar atomicamente um único bit

Como posso combiná-los para um conjunto de operações no estilo mutex:

try lock
take lock
release lock

Parece quetry_lock outake_lock exigiria duas operações que não seriam atômicas.

Preciso de mais controle para fazer isso? Desativar interrupções globais faria isso, mas parece que deveria haver uma abordagem mais cirúrgica.

questionAnswers(4)

yourAnswerToTheQuestion