A mega-repository full of all firmware projects, build tools, and dependencies to create firmware modules for the car.
cmake - CMake helper files for compiling common modules
common - Common firmware modules shared across the codebase
source - Firmware comonents for descrete MCUs
- Initialize the git submodules in this project with the command
git submodule update --init --recursive
to download the source for the various git submodules.
Install these packages:
- arm-none-eabi-gcc Compiler specific to ARM based targets.
- CMake Build system generator. This takes care of making all of the build files needed to compile the project.
- Ninja Small & fast build system used by CMake
You can also use docker to install all of the packages inside a development container. This has a minor drawback of not being able to fully complete the VSCode IntelliSense database with your source files for auto completion and code navigation.
-
This project has a Dockerfile which will setup your build environment and setup the tools necessary to develop firmware. Once you install Docker you should be able to access command line tools by running
docker --help
for a list of available commands. -
Build the image defined by the
Dockerfile
by running:
docker compose build develop
This command uses the
docker-compose.yaml
file to build the image with the tag ofstm32_develop:latest
.
- Run the compiled image in a container:
docker compose run develop
This will place you into an interactive command line inside a container defined by the
stm32_develop:latest
image. This is a minimal Ubuntu 20.04 distro and moves you to the/per
directory. This directory is linked to the same directory in host machine which is defined in thedocker-compose.yaml
file.
python3 per_build.py
This command is a thin wrapper around CMake to build all of the components which will be placed in a newly created
output
folder. Runningpython3 per_build.py --help
will give you more options for building components.