Building FreeRTOS
This application note explains how to build the U-Boot and FreeRTOS target run-time images for the Emcraft STM32H7 SOM and Starter kit.
1. FreeRTOS gits
Emcraft maintains the U-Boot and FreeRTOS sources for the STM32H7 SOM and Starter Kit in the following repositories:
U-Boot:
https://gitlab.com/emcraft/STM32H7/u-boot-upstream (branch emcraft-2019.04);FreeRTOS:
https://gitlab.com/emcraft/STM32H7/STM32CubeH7 (branch master-1.11.0).
2. Build Host
The FreeRTOS build runs on a Linux development host.
The following Linux distributions have been explicitly validated by Emcraft:
Fedora CoreOS 31;
Ubuntu 20.04.
3. Software Set-Up
The following software set-up is required on the Linux development host, in order to build U-Boot and FreeRTOS:
Install the M7 toolchain.
For Fedora:
$ sudo dnf install arm-none-eabi-gcc-cs arm-none-eabi-binutils-cs
For Ubuntu:
$ sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa $ sudo apt-get update $ sudo apt install gcc-arm-none-eabi binutils
Install the
uboot-tools
package.For Fedora:
$ sudo dnf install uboot-tools
For Ubuntu:
Install the
openss-devel
package.For Fedora:
For Ubuntu:
Install the
stlink
package.For Fedora:
For Ubuntu:
Please note that the
stlink
package should be version 1.7.0 or higher. If the new version is not available for your distribution then build it manually from the sources, refer to https://github.com/stlink-org/stlink/blob/develop/doc/compiling.md .
Install the
ckermit
package.For Fedora:
For Ubuntu:
4. Build Procedure
Run the following step-wise procedure to build the U-Boot and FreeRTOS run-time images for the STM32H7 SOM and Starter Kit:
Create a separate directory and clone the U-Boot and FreeRTOS repositories:
Generate cryptographic keys to sign the bootable image:
Create links to the keys in the U-Boot and FreeRTOS sources:
Go to the top of the U-Boot source tree:
Configure the U-Boot sources to build for the STM32H750 System-on-Module:
Build U-Boot for the STM32H750 System-on-Module:
Go to the top of the FreeRTOS source tree:
Configure the BSP for your STM32H7-BSB revision in
Projects/STM32H7_SOM/Applications/FreeRTOS/freertos_stm32h750/Inc/stm32h7xx_hal_conf.h
:For the STM32H7-BSB Rev 1A board, set the BSB_REV_2B constant value to 0.
For the STM32H7-BSB Rev 2A board, set the BSB_REV_2B constant value to 1.
Build the firmware image:
5. Build Artifacts
The build procedure described above creates the following target run-time images. These images are ready for installation to the STM32H7 SOM:
stm32h7-som/u-boot-upstream/spl/u-boot-spl.bin
- U-Boot SPL image;stm32h7-som/u-boot-upstream/u-boot.img
- U-Boot main image;stm32h7-som/STM32CubeH7/Release/freertos_stm32h750.img
- FreeRTOS image.
The BSP also contains the script required to install images to the STM32H7 SOM and a splash screen image:
stm32h7-som/u-boot-upstream/board/emcraft/stm32h7-som/stm32h7-som-prog.kermit
- installation script;stm32h7-som/u-boot-upstream/board/emcraft/stm32h7-som/stm32h7-splash-24bpp.bmp
- splash screen image.