A cross-compiler targetting ARMv6 or ARMv7-M such as the GNU ARM Embedded Toolchain is required to build the source code for the Trusted Boot Module.
Either install it using your package manager or download the toolchain from https://developer.arm.com/open-source/gnu-toolchain/gnu-rm.
For Gentoo users, an ebuild is available in the tbm-overlay repository.
Building your own cross-compiler using a tool like crossdev can be quite tricky, and is therefore discouraged.
To build the source code in this repository, you will also need libopencm3.
Download the source code for libopencm3 and build it as follows:
git submodule init
git submodule update
make -C libopencm3
The targets that are currently supported are:
* A simulation compatible with your host device (not up-to-date; requires an older git revision): TARGET=host make
* STM32F0 Discovery board: TARGET=stm32f0 make
* Trusted Boot Module (rev. 1): TARGET=stm32f1 make
To build the code for the Trusted Boot Module, run:
Flashing and Debugging
In case of the STM32F0 Discovery board, simply connect the device using a USB cable. In case of the TBM, connect the device using SWD.
Then run the following as root:
TARGET=stm32f1 make openocd
To flash and run the program, issue the following command:
TARGET=stm32f1 make run