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 on Arm FVP for local validation / AVH. |
|
Zephyr on S32Z hardware. |
|
FreeRTOS POSIX runtime for local validation. |
|
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
Deploy the firmware to an AVH instance: Arm Virtual Hardware deployment.
Run the full Autoware + safety island demo: Arm Virtual Hardware deployment (section Running the Demo).
Validate the FreeRTOS local runtime: FreeRTOS POSIX.
Flash a physical S32Z board: NXP S32Z270DC2 (real HW).
Understand the runtime: Architecture and DDS topics.