Control and management of toolchain and other tools to create reproducible firmware
Hello ST Community,
currently I am thinking about how to ensure that different developers working on the same project are able to keep exact results. Building, linking, debugging and flashing process should be reproducible and identical for my purposes. Any recommendations on this?
When using STM32CubeIDE I had the problem that the project files, which contain information about the toolchain etc., are very difficult to manage. (XML files containing absolute paths, .cproject, .project files etc. are changing on every startup of IDE).
Currently I manage in a separate GIT repository tools like:
- GNU ARM Embedded Toolchain
- Make
- STM32CubeProgrammer
- OpenOCD
The firmware is in a separate GIT repository and relies on a Makefile build process. There are only relative paths to the toolchain repository in the Makefiles. This means that as soon as all developers consider the hierarchy of the firmware and the toolchain folder, it should always be possible to reproduce identical results. The Makefile contains further commands for building, flashing firmware, erasing etc.
Now I wanted to ask if there are better approaches to make the full lifecycle of firmware development and testing more traceable than my approach. (According to my researches there are also approaches to outsource and manage the toolchain in Docker Images. I don't see the additional benefit to my approach).
(i could not find a suitable category for questions regarding firmware development)
Best regards
