Hace poco me encontré con la función de bandas de bits en el núcleo de Cortex-M4 y cómo proporciona una solución para evitar las condiciones de carrera mientras se alternan los bits de registros. El M4 también tiene un registro BSRR dedicado para realizar la manipulación atómica de bits en los puertos GPIO, entiendo que usar esto hace que la aplicación sea segura para subprocesos
Este enfoque tiene algún inconveniente en comparación con el método de lectura-modificación-escritura generalmente utilizado para alternar los pines GPIO. Si no, ¿por qué se proporcionan registros GPIO_ODR para los núcleos cortex-m, por qué no usar solo el registro BSRR Acceso pin GPIO.