The ATOMIC_SET_BIT ATOMIC_CLEAR_BIT macros are based on ldrex/strex instructions: see STM32CubeF4/Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h Line 234 in 4aba24d val = __LDREXW((__IO uint32_t *)&(REG)) | (BIT); \ ...
A computer storage register architecture permitting secure atomic access to set or dear one or more particular bits wherein a multiple bit register is diclosed. In the preferred embodiment, a multiplicity of unique addresses is assigned to a multiple bit register. One address constitutes a read ...