micro-ROS for AMD Vitis

This package eases the integration of micro-ROS in a AMD Vitis. This components targets building the micro-ROS library for different targets or architectures supported by AMD Vitis.

Supported targets

Target MICROROS_TARGET
MicroBlaze VITIS_MICROBLAZE
Cortex R5 VITIS_CORTEX_R5

General Configuration

All targets allow the following CLI arguments:

  • -f: Force clean and build, even if the library is already built.

MicroBlaze Configuration

The MicroBlaze platform allows to configure the following parameters:

  • -mbig-endian: Enable big-endian mode.
  • -64bits: Build for MicroBlaze 64 bits (default is 32 bits).

Prerequisites

  • AMD Vitis installed.
  • Valid compiler for the target architecture installed and available in the PATH.
  • The following Python packages installed:
pip3 install colcon-common-extensions catkin_pkg lark-parser empy
  • The following packages installed in the system:
sudo apt install rsync

Building the micro-ROS library

Note - If Vitis SDK environment was sourced, the PATH will need to be adjusted.

export PATH="/usr/bin":$PATH

In order to generate the micro-ROS library for a specific target, the following command must be executed:

MICROROS_TARGET=<target> ./build_micro_ros_library.sh

Where <target> is the target architecture to build the micro-ROS library for, as specified in the Supported targets section.

Configuring micro-ROS library memory

As explained in the micro-ROS documentation some of the micro-ROS memory is statically allocated at compile time. This means that the memory configuration must be adjusted to the specific target architecture.

In order to tune the memory configuration, colcon.meta file must be edited according to the fit application requirements.

Adding custom packages to the micro-ROS build

In order to include a custom package in the micro-ROS build, just copy the package folder into library_generation/extra_packages folder. The build system will automatically detect the package and build it along with the micro-ROS library.

Note that a library rebuild is needed to include the package, this can be achieved by deleting the libmicroros generated folder and building your project afterwards.