STM32 programming with Embedded GNU Compiler
FreeSTM32F4 Discovery examples for GNU ARM toolchain on Linux
FreeFree tier
About STM32 programming with Embedded GNU Compiler
This open-source GitHub repository provides source code and build configurations for developing on the STM32F4 Discovery board using the GNU ARM Embedded toolchain on Linux. It includes fully buildable examples such as an LED blinker, USB virtual COM port, and semihosting Hello World, along with modified STM32 peripheral libraries and headers adapted for GCC. The project aims to enable Linux-based embedded development with the STM32F4 Discovery, simplifying the build process with Makefiles and demonstrating practical use of the GNU ARM Embedded GCC compiler.
Key Features
LED blinker sample code (buildable)
USB virtual serial port code (buildable)
Semihosting Hello World sample code (buildable)
STM peripheral examples (buildable via 'make')
STM libraries and headers modified for GNU ARM toolchain
Makefile-based build system for command-line compilation
Pros & Cons
Pros
- Enables STM32F4 development on Linux using free GNU tools
- Includes working, buildable examples for common peripherals
- Simplifies project setup with provided Makefiles
- Modified STM libraries ensure compatibility with GCC
Cons
- Only supports the STM32F4 Discovery board specifically
- Requires manual installation of GNU ARM Embedded toolchain
- STM's library code structure is non-traditional and may need per-project configuration
- No official releases or package management; relies on repository snapshots
Best For
Embedded STM32F4 development on LinuxLearning STM32F4 Discovery board programming with free toolsPrototyping USB virtual COM applications on STM32F4Semihosting debugging with GNU ARM Embedded toolchain
FAQ
What boards are supported?
The code targets the STM32F4 Discovery evaluation board (STM32F4DISCOVERY).
What toolchain is used?
GNU Tools for ARM Embedded Processors (arm-none-eabi-gcc).
How do I build the examples?
Navigate to the project directories under the 'Project' folder and run 'make' from the command line.
Does the repository work on Windows?
The repository focuses on Linux development; Windows support is not mentioned.