What
A minimal yet flexible bare-metal C/C++ project for STM32F4-Discovery and related STM32F4 devices.
✨ Features
- Built using make (no IDE dependency, Visual Studio Code supported)
- C Project (./projects/project-1_c)
- Polymorphic design in C to support multiple independent applications (
app1
,app2
) - Each app can be configured separately to perform its task
- Demonstrates:
- USART communication (tested with PuTTY)
- Blinking LEDs
- ntegration of the standard C runtime (e.g.,
malloc
,printf
,scanf
) through custom system call implementations
- Polymorphic design in C to support multiple independent applications (
- C++ Project ( ./projects/project-1_cpp)
- Same basic functionality as the C project. Startup code in C; rest in C++
- Improved Makefile
- Utility to display include dependencies
Flashing & Debugging (manual and with VSC)
- Uses
st-flash
(from stlink) to program the STM32F4-Discovery - Can be debugged with
gdb-multiarch
via OpenOCD - Easily integrated with Visual Studio Code or CLI workflows for breakpoint debugging and memory inspection
launch.json
to flash and debug the program-
tasks.json
to build and run commands inside the container
This project serves as a clean, extensible foundation for low-level STM32 development, showcasing both embedded and software design principles.
⚡Getting Started
You can use this container to start programming and experimenting in your local Debian environment.
- Setup instructions for the Docker container, as well as build and development instructions for use with Visual Studio Code, can be found here:
Alternative DTS containers can be found here: remote
Version: 0.3