Design Overview

This design module demonstrates the FreeRTOS and application running on RPU-0, where:
  • FreeRTOS boots on RPU-0
  • FreeRTOS application "heartbeat" prints periodic messages on UART-1


Design Components

  • petalinux_bsp
    • zynqmp_fsbl
    • pmufw
  • heartbeat.elf

Build Flow Tutorials

This tutorial uses both SDx and PetaLinux tools. It is recommended to use separate shells for each of the tools.

Note: For consistency the SDx tool is used for all design modules. However, the SDx compiler is not called in this tutorial. SDx is just an eclipse profile that can call the ARM C/C++ compiler, just like XSDK. It is possible to use XSDK to perform the steps in this tutorial. To do so, replace sdx with xsdk in the below code snippet.

Heartbeat Application

The heartbeat application is a FreeRTOS application that executes on RPU-0 after the FSBL has finished. This application is a simple dual task application that demonstrates communication between the two tasks by printing messages to the UART1 console.

  • Create a new SDx workspace.
    % cd $TRD_HOME/rpu0/heartbeat
    % sdx -workspace . &
  • Click 'Import Project' from the welcome screen, browse to the current working directory and make sure the heartbeat, heartbeat_bsp, and zcu102_base_trd_wrapper_hw_platform_0 projects are selected. Click Finish.
  • Right-click on the heartbeat project and select 'Build Project'.
  • Copy the generated heartbeat executable into the PetaLinux BSP.
    cp heartbeat/Debug/heartbeat.elf $TRD_HOME/apu/petalinux_bsp/images/linux

PetaLinux BSP

This tutorial shows how to build the first stage bootloader (FSBL), PMU-firmware and boot image using the PetaLinux build tool.

  • The petalinux-config step can be skipped if this was already done in a previous module.
    % cd $TRD_HOME/apu/petalinux_bsp
    % petalinux-config --oldconfig
  • Build the FSBL. This step can be skipped if this was already done in a previous module.
    petalinux-build -c fsbl
  • Build the PMU firmware. This step can be skipped if this was already done in a previous module.
    petalinux-build -c pmu-firmware
  • Create a boot image.
    % cd images/linux
    % petalinux-package --boot --bif=dm2.bif --force
  • Copy the generated boot image to the dm2 SD card directory.
    % mkdir -p $TRD_HOME/images/dm2
    % cp BOOT.BIN $TRD_HOME/images/dm2

Run Flow Tutorial

  • See here for board setup instructions.
  • Copy all the files from the $TRD_HOME/images/dm2 SD card directory to a FAT formatted SD card.
  • Power on the board to boot the images; make sure all power rail LEDs are lit green.
  • The user can now see FSBL prints on UART-0 and prints from heartbeat application can be viewed on UART-1 which is shown in the following picture:

Return to the Design Tutorials Overview.