So I’ve tried building firmware from OpenWare repo. The build fails because FreeRTOS.h header is missing (when running “make magus”). Is it omitted from repo by mistake or supposed to be copied somewhere by me?
In order to build the OpenWare firmwares you need the HAL libraries from STM. The best way to get these, especially if you are interested in customising the firmware, is to install STM32CubeMX and open the corresponding .ioc
file. Then if you click Generate Files
, the required libraries will be placed where they are needed.
This whole build process should be documented, but some of the tools have been changing quite quickly. Now there’s STM32CubeIDE available, which I’m planning to try out. It might provide a smoother path to embedded nirvana, as it includes the ARM GCC compiler, OpenOCD and debugger.
Speaking of embedded nirvana, are you familiar with platformIO?
I was not. Are you using it?
I’ve had only limited experience - gave it a go for Teensy 4 and it worked very well. It didn’t require to use IDE provided by Teensy or a particular IDE - instead of that they have plugins for most popular IDEs that use CLI tools provided by platformIO.
Here’s a sample project based on cubeMX that I’ve found - GitHub - maxgerhardt/pio-cubemx-freertos: An example on how to use PlatformIO with a CubeMX genera
AFAICT, in this case we’ll also need to add custom board definition, but this does not look too challenging - http://docs.platformio.org/en/latest/platforms/creating_board.html
I’ll let you know if I’ll end up managing to build firmware using it. I suspect issues that it solves were solved in a different way when migrating codebase to OpenWare repo, so it’s not clear how useful it would be.