Installing and Activating Cross Development Environment (uClinux)

The Linux Cortex-M development software is distributed as a linux-cm-<bsp>-<release>.tar.bz2 file available for download from the Emcraft site. That file can be installed to an arbitrary directory on your Linux development host, as follows:

$ tar -xjf ./ linux-cm-<bsp>-<release>.tar.bz2 $ ls linux-cm-<bsp>-<release>/ A2F linux _MANIFEST projects tools u-boot

You do not need to be the superuser (root) in order to install the Linux Cortex-M distribution. The installation can be performed from an arbitrary unprivileged user account.

As a next step in the installation procedure, you need to download the GNU cross-build tools for Cortex-M and the GNU Arm Embedded Toolchain available from It is recommended that you install the GNU development tools to the tools/ directory in the cross-development tree. Download the
arm‑buildroot‑uclinuxfdpiceabi_sdk‑buildroot.tar.gz and gcc‑arm‑none‑eabi‑10.3‑2021.10‑x86_64‑linux.tar.bz2 files to your home directory, then unpack it to tools/:

$ cd linux-cm-<bsp>-<release>/tools/ $ tar -xzf ~/arm-buildroot-uclinuxfdpiceabi_sdk-buildroot.tar.gz $ tar -xjf ~/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2

The tools can be installed from an unprivileged account.

It is possible to install the tools to an alternative location, however, should you do that, you will need to modify the script to provide a correct path to the installed tools (specifically, PATH must include a correct path to the directory where you have installed the cross-tools).

Generally speaking, our customers do not have many issues (if any) with installation and activation of the development environment. For some reason, the most frequently occurring error is that people forget to run the activation script. This obviously results in insufficient path settings and the compiler failing to build sources for Cortex-M.

The activation script needs to be run any time you start a development session. The script resides at the top of the installation directory:

$ ls A2F linux _MANIFEST projects tools u-boot

An alternative way to run the script is to perform the following command:

Whichever way you run the script, it sets a number of environment variables that are required for the cross development environment to function correctly. One of those variables is called MCU. The easy way to test if the cross development environment is active is to run the following command:

If MCU is empty or set to something other than STM32H7, this means that you have forgotten to run the activation script or somehow run it incorrectly.

Some of our customers ask if the cross development environment can be run on a Windows host. We don't support Windows, however some of our customers have been successfully running the development environment on a virtual Linux machine under Windows. Again, we don't support that explicitly so if you want to try that, you are on your own.