Who is this for?

This is an introductory topic for embedded software developers who want to deploy a Zephyr-based ML Application on the Arm Corstone-320 MPS4 Platform with ExecuTorch.

What will you learn?

Upon completion of this Learning Path, you will be able to:

  • Set up a Zephyr and ExecuTorch development environment for Corstone-320 MPS4.
  • Quantize and export a PyTorch model for Ethos-U85 neural processing unit (NPU) delegation.
  • Configure and build the Zephyr `hello-executorch` application for Corstone-320 MPS4.
  • Run the application on the MPS4 board and verify machine learning (ML) inference through UART output.

Prerequisites

Before starting, you will need the following:

  • Basic familiarity with embedded C programming
  • Basic familiarity with machine learning concepts
  • A Zephyr workspace and board target using Zephyr version V4.3.0 that you prepared by completing the Port Zephyr RTOS and run applications on the Arm Corstone-320 MPS4 platform Learning Path
  • A Corstone-320 MPS4 FPGA development board
  • A Linux development environment, such as Ubuntu 22.04 or later

Summary

AI-assisted

This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
You’ll deploy a Zephyr machine learning application on the Arm Corstone-320 MPS4 with ExecuTorch. First, you’ll download the FI101 FPGA image and set up the Zephyr and ExecuTorch environment. Next, you’ll quantize and export a PyTorch model as a .pte file for Ethos-U85 delegation. Finally, you’ll port a sample application, configure SRAM-only NPU regions, build the application and run it on the MPS4, and verify inference over UART.

Frequently asked questions

AI-assisted

These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
How do I know the MPS4 is using the correct Corstone-320 FPGA image before I build?
Confirm the board is running the SSE-320 FI101 image that includes Cortex-M85 and Ethos-U85 by following the application note and board documentation. Proceed only after verifying the image matches the FI101 release you downloaded.
Which Zephyr board target should I use when configuring the build?
Use the mps4/corstone320/fpga board target with Zephyr version V4.3.0.
What code change enables the Ethos-U85 NPU region configuration for this application?
Override the weak ethosu_config_select() function in ethosu_device_u85.c to set the QCONFIG and REGIONCFG registers for Ethos-U85. Your override must keep the command stream, weights, and scratch data in SRAM for the SRAM-only model.
What model artifact should I have after quantizing and exporting with ExecuTorch?
After quantization and export, you should have the .pte model artifact add_u85_1024_sram_only.pte. Pass it to the Zephyr build with the -DET_PTE_FILE_PATH flag, as shown in the build command.
What result should I expect over UART to confirm inference ran?
You should see the hello-executorch model delegate flow and inference output over UART, followed by SUCCESS: Program complete, exiting.
Next