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:

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:

  1. Install the M7 toolchain.

    1. For Fedora:

      $ sudo dnf install arm-none-eabi-gcc-cs arm-none-eabi-binutils-cs
    2. For Ubuntu:

      $ sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa $ sudo apt-get update $ sudo apt install gcc-arm-none-eabi binutils
  2. Install the uboot-tools package.

    1. For Fedora:

      $ sudo dnf install uboot-tools
    2. For Ubuntu:

  3. Install the openss-devel package.

    1. For Fedora:

    2. For Ubuntu:

  4. Install the stlink package.

    1. For Fedora:

    2. 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 .

  5. Install the ckermit package.

    1. For Fedora:

    2. 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:

  1. Create a separate directory and clone the U-Boot and FreeRTOS repositories:

  2. Generate cryptographic keys to sign the bootable image:

  3. Create links to the keys in the U-Boot and FreeRTOS sources:

  4. Go to the top of the U-Boot source tree:

  5. Configure the U-Boot sources to build for the STM32H750 System-on-Module:

  6. Build U-Boot for the STM32H750 System-on-Module:

  7. Go to the top of the FreeRTOS source tree:

  8. 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.

  9. 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.