Este video describe sucintamente por qué la lectura / modificación / tienda tiene problemas potenciales cuando se trata de interrupciones. Muy claro y comprensible.
Utiliza el TI Stelarris Cortex-M4 como un tablero de enseñanza y en el minuto que he enlazado anteriormente se describe cómo se diseñó ese tablero de manera que se pueda escribir en cada bit GPIO o en un grupo de bits como era una dirección única que utiliza 256 registros diferentes de 32 bits .
Lo estoy siguiendo junto con una placa STM32F103C8T6 y una página 150 de la manual de referencia dice:
El código de Dave Welche hace exactamente esto. Funciona exactamente como se esperaba y parpadea el LED de a bordo.Nota: para el establecimiento / restablecimiento de bits atómicos, los bits ODR se pueden configurar individualmente y se borra escribiendo en el registro GPIOx_BSRR (x = A .. G).
Mi pregunta entonces: ¿Hay alguna forma de escribir atómicamente en el tablero de la píldora azul de la manera que se describe en el video? ¿O es que cada fabricante maneja este tipo de cosas de manera diferente y en el caso de la blue-pill ST ha decidido usar un solo registro para manejar esto?