Quickstart

This guide builds the default zephyr-fvp runtime target for the Arm Fixed Virtual Platform (fvp_baser_aemv8r_smp). The produced ELF runs on a local FVP model and can also be used with Arm Virtual Hardware workflows.

For local FreeRTOS validation, see FreeRTOS POSIX. For running the full Autoware + safety island loop on AVH, follow Arm Virtual Hardware deployment after building. For real hardware on the NXP S32Z270DC2, see NXP S32Z270DC2 (real HW).

Prerequisites

  • Ubuntu 22.04 (validated) with Docker installed.

  • Enough free disk space for the development container image plus the Zephyr SDK and build artifacts.

Clone the repository

$ git clone https://github.com/autowarefoundation/autoware-safety-island.git
$ cd autoware-safety-island
$ git submodule update --init --recursive

Enter the development container

The launch-dev-container.sh script pulls and runs the ghcr.io/autowarefoundation/autoware-safety-island:devcontainer image, which has the Zephyr SDK, west, and the Python tooling pre-installed.

$ ./launch-dev-container.sh

All build commands below are run inside this container.

Build the default target

$ ./build.sh --platform zephyr-fvp

build.sh with no arguments also compiles zephyr-fvp. It builds the CycloneDDS host-side IDL compiler, then invokes west build for fvp_baser_aemv8r_smp.

The resulting binary is written to:

build/actuation_module/zephyr/zephyr.elf

build.sh --platform selects a runtime target:

Target

Purpose

zephyr-fvp

Zephyr on Arm FVP for local validation / AVH.

zephyr-s32z

Zephyr on S32Z hardware.

freertos-posix

FreeRTOS POSIX runtime for local validation.

freertos-s32z2

FreeRTOS on S32Z2 hardware, requiring NXP SDK inputs.

Other build.sh flags are documented in Testing, FreeRTOS POSIX, and NXP S32Z270DC2 (real HW).

What to do next