#include #include uint32_t *RCC = (uint32_t *) 0x40023800; uint32_t *AHB1ENR = (uint32_t *) 0x40023830; uint32_t *GPIOB_MODER = (uint32_t *) 0x40020400; uint32_t *GPIOB_ODR = (uint32_t *) 0x40020414; uint32_t *GPIOB = (uint32_t *) 0x40020400; uint32_t *GPIOA_MODER = (uint32_t *) 0x40020000; uint32_t *GPIOA = (uint32_t *) 0x40020000; #define set(reg, bit, val) *(reg) ^= (-(val) ^ *(reg)) & (1UL << (bit)) int main(void) { set(AHB1ENR, 1 /* GPIOBEN */, true); set(AHB1ENR, 0 /* GPIOAEN */, true); set(GPIOB_MODER, 0 /* MODER0 */, true); set(GPIOB_MODER, 1 /* MODER0 */, false); set(GPIOB_MODER, 14 /* MODER7 */, true); set(GPIOB_MODER, 15 /* MODER7 */, false); set(GPIOB_MODER, 28 /* MODER14 */, true); set(GPIOB_MODER, 29 /* MODER14 */, false); set(GPIOB_ODR, 0 /* ODR0 */, true); set(GPIOB_ODR, 7 /* ODR7 */, true); set(GPIOB_ODR, 14 /* ODR14 */, true); }