Search by Tags

Advanced Module: Heterogeneous Multicore Processing (HMP)


Attention: the Quickstart Guide for BSP 2.8, based on the Ångström distribution, is not being updated anymore. Depending on your SoM, you have different options:

Vybrid and Tegra: the information is provided as-is and still accurate, since newer Toradex BSPs are not ported to those SoMs. Just keep in mind that the Guides are not being maintained anymore, even if we find bugs or outdated instructions.

Apalis TK1 (all variants), Colibri iMX6ULL (all variants), Colibri iMX7S 256MB and Colibri iMX7D 512MB: these computer on modules are still regularly maintained in our BSPs and, to get started, you must check the software page Toradex BSP Layers and Reference Images for Yocto Project. Since Torizon is not supported, at the moment a Quickstart Guide is not available.

All other i.MX-based SoMs: you have two options to get started with embedded Linux: the first is to follow the Quickstart Guide for Torizon, which provides the greatest out-of-the-box experience, or if you choose to use Yocto, check the software page Toradex BSP Layers and Reference Images for Yocto Project.


In this module, you will learn how to make use of the heterogeneous multiprocessing (HMP) capabilities of the System on Module (SoM).

This SoM features an extra microcontroller core together with the main core(s). HMP systems usually run different operating systems on each core, which generally have different architectures and instruction sets, performing different tasks.

This special feature opens up to many possibilities and applications, such as, but not limited to, real-time control, load balancing and sensor data processing.

After finishing this module, will you know the basics on how to manually build and upload a firmware to the microcontroller core, use the Eclipse IDE to manage your projects easily, and how to exchange data between the heterogeneous cores.


In order to include all of the topics presented in the introduction, this module is divided in the following sections:

Compiling examples from command line

GPIO example using Eclipse

Communicating between cores with RPMsg