// Direcciones calculadas para STM32C031
#define RCC_IOPENR (*((volatile unsigned int *)0x40021034))
#define GPIOA_MODER (*((volatile unsigned int *)0x50000000))
#define GPIOA_ODR (*((volatile unsigned int *)0x50000014))
void delay(int count) {
for (int i = 0; i < count; i++) __asm__("nop");
}
int main(void) {
// 1. Habilitar reloj para GPIOA (Bit 0 del IOPENR)
RCC_IOPENR |= (1 << 0);
// 2. Configurar PA5 como salida (Bits 10-11 del MODER)
// 01 = Output Mode
GPIOA_MODER &= ~(3 << 10); // Limpiar
GPIOA_MODER |= (1 << 10); // Poner en 01
while (1) {
GPIOA_ODR ^= (1 << 5); // Toggle Pin 5
delay(100000);
}
}