// Nucleo-F446RE: Blink built-in LED at PA5 // Reset Vector at 0x08000004 goes here Reset: // AHB1PERIPH_BASE: 0x40020000 // RCC_BASE: AHB1PERIPH_BASE + 0x3800 // GPIOA_BASE AHB1PERIPH_BASE + 0x0000 MOVS R1, #0x01 MOVS R2, #0x20 // PA5 - %100000 LSLS R3, R2, #25 // 0x40000000 LSLS R4, R2, #12 // 0x00020000 ADDS R4, R4, R3 // GPIOA_BASE MOVS R3, #0xE LSLS R3, R3, #10 // 0x00003800 ADDS R3, R4, R3 // RCC_BASE STR R1, [R3,#0x30] // RCC_AHB1, enable GPIOA // Initial SP Value at 0x08000000 has to be somewhere in SRAM LDR R0, [SP] EORS R0, R0, R2 // LED toggle STR R0, [SP] // LED: PA5 (1 -> on) // 5 4 3 2 1 0 LSLS R5, R1, #10 // 0x400 - % 01 00 00 00 00 00 STRH R5, [R4] // GPIOA_MODER, LED output STR R0, [R4,#0x14] // GPIOA_ODR, LED on/off // IWDG timeout: 512 ms, Hardware Watchdog will trigger a Reset Infinite_Loop: b Infinite_Loop