TF-M officially supports a limited set of build environments and setups. In this context, official support means that the environments listed below are actively used by team members and active developers hence users should be able to recreate the same configurations by following the instructions described below. In case of problems, the TF-M team provides support only for these environments, but building in other environments can still be possible.
The following environments are supported:
To compile TF-M code, at least one of the supported compiler toolchains have to be available in the build environment. The currently supported compiler versions are:
Notes:
The Arm compilers above are provided via Keil uVision v5.24.1 or greater, DS-5 v5.27.1 or greater, and Development Studio 2018.0, or they can be downloaded as standalone packages from here.
Arm compiler specific environment variable may need updating based on specific products and licenses as explained in product-and-toolkit-configuration.
The GNU Arm compiler can be downloaded from here. On the page select GNU Arm Embedded Toolchain: 6-2017-q1-update or GNU Arm Embedded Toolchain: 7-2018-q2-update
The build-system is CMake based and supports the following versions:
Please use the latest build version available (i.e. 3.7.2 instead of 3.7.0). While it is preferable to use the newest version this is not required and any version from the above list should work.
Recent versions of CMake can be downloaded from https://cmake.org/download/, and older releases are available from https://cmake.org/files.
The TF-M team builds using the "Unix Makefiles" generator of CMake and thus GNU make is needed for the build. On Linux please use the version available from the official repository of your distribution.
On Windows the following binaries are supported:
CMake is quiet tolerant to GNU make versions and basically any "reasonably recent" GNU make version shall work.
CMake generators other than "Unix Makefiles" may work, but are not officially supported.
This section lists dependencies and some exact and tested steps to set-up a TF-M-m build environment under various OSes.
To import Arm Compiler v6.7.1 in your bash shell console:
Note: Arm compiler specific environment variable may need updating based on specific products and licenses as explained in product-and-toolkit-configuration.
export PATH=<DS-5_PATH>/sw/ARMCompiler6.7.1/bin:$PATH export ARM_TOOL_VARIANT="ult" export ARM_PRODUCT_PATH="<DS-5_PATH>/sw/mappings" export ARMLMD_LICENSE_FILE="<LICENSE_FILE_PATH>"
To import CMake in your bash shell console:
export PATH=<CMAKE_PATH>/bin:$PATH
To import GNU Arm in your bash shell console:
export PATH=<GNU_ARM_PATH>/bin:$PATH
If applicable, import Arm Compiler v6.7.1 in your shell console. To make this change permanent, add the command line into ~/.bashrc
DS-5
Notes:
Arm compiler specific environment variable may need updating based on specific products and licenses as explained in product-and-toolkit-configuration.
Arm licensing related environment variables must use Windows paths, and not the Cygwin specific one relative to /cygrive.
export PATH="/cygdrive/c/<DS-5_PATH>/sw/ARMCompiler6.7.1/bin":$PATH export ARM_PRODUCT_PATH="C:/<DS-5_PATH>/sw/mappings" export ARM_TOOL_VARIANT="ult" export ARMLMD_LICENSE_FILE="<LICENSE_FILE_PATH>"
Keil MDK Arm
Notes:
export PATH="/cygdrive/c/<uVision path>/ARM/ARMCLANG/bin":$PATH
If applicable, import GNU Arm compiler v6.3.1 in your shell console. To make this change permanent, add the command line into ~/.bashrc
GNU Arm
export PATH=<GNU_ARM_PATH>/bin:$PATH
To import CMake in your bash shell console:
CMake
export PATH=/cygdrive/c/<CMAKE_PATH>/bin:$PATH
The following additional tools are needed:
For PDF generation the following tools are needed in addition to the above list:
Note support for document generation in the build environment is not mandatory. Missing document generation tools will not block building the TF-M firmware.
###Set-up the needed tools
For PDF generation:
For PDF generation:
Note When building the documentation the first time, MikTeX might prompt for installing missing LaTeX components. Please allow the MikTeX package manager to set-up these.
export PLANTUML_JAR_PATH="~/plantuml/plantuml.jar"
Assumptions for the settings below:
export PLANTUML_JAR_PATH="c:/plantuml/plantuml.jar" export PATH=$PATH:/cygdrive/c/<DS-5 path>/sw/java/bin
Copyright (c) 2017-2019, Arm Limited. All rights reserved.