A bare-metal STM32F429I-Discovery project built without a vendor framework.
The project starts from startup code and a linker script, configures the microcontroller directly through registers, and gradually builds toward more complete board functionality.

Current scope
- custom interrupt vector table and startup code
- custom GNU linker script
- register-level peripheral configuration
- 168 MHz clock configuration
- SysTick millisecond timebase
- on-board LED control
- USART2 debug output
- SPI ILI9341 LCD bring-up
- EXTI user/external button handling
- RGB565 sprite rendering
- Make and optional CMake build flows
- OpenOCD flashing
Why this repository exists
The goal is to keep the hardware visible rather than hiding it behind a framework:
reset
|
v
startup code
|
v
linker-defined memory layout
|
v
clock / SysTick / GPIO / USART / SPI / EXTI
|
v
display + input
|
v
small interactive demos
It is both a working firmware project and a progressively documented bare-metal reference.