ATOMIC-макросы для ARM

Поклонникам контроллеров AVR и компилятора WinAVR хорошо знаком макрос
ATOMIC_BLOCK(SOMETHING),
с помощью которого обычно реализуется атомарный доступ. При переходе на контроллеры ARM возникает вопрос: а где мой любимый ATOMIC_BLOCK? А нету. Восполним этот пробел.


Читать дальше

Атомарные операции в Cortex-M3


Часто возникает ситуация, когда одна и та-же переменная используется и изменяется из разных потоков или из островного потока и прерываний. В этом случае модификацию такой разделяемой переменной необходимо осуществлять атомарно. Простейший способ обеспечения атомарности — это запрет прерываний на время операции, но это не наш метод — в ядре ARM Cortex-M3 есть более интересные средства для этого.


Читать дальше