STM32 - Docker bare-metal C/C++ project Container
ℹ️ Introduction
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-multiarchvia OpenOCD - Easily integrated with Visual Studio Code or CLI workflows for breakpoint debugging and memory inspection
launch.jsonto flash and debug the programtasks.jsonto build and run commands inside the containers
⚡Getting Started
This project serves as a clean, extensible foundation for low-level STM32 development, showcasing both embedded and software design principles.You can use this container to start programming and experimenting in your local Debian environment.
Setup instructions here
Here the information for the Docker container, as well as build and development instructions for use with Visual Studio Code, can be found. click here for local
License
This file is part of: STM32 Template Stack Copyright (c) 2025-2026 Nico Jan Eelhart.This repository is MIT licensed and free to use. For optional commercial support, customization, training, or long-term maintenance, see COMMERCIAL.md.
─── ✦ ───