# Getting started

Compile the MLPerf Tiny keyword-spotting model, build a Zephyr application for
an Apollo510 EVB, and compare its output with a supplied golden fixture. The
walkthrough keeps the same model, module name (`kws_ref`) and symbol prefix
(`aot`) through all six steps.

## Before you start

The first four steps run on your development machine. You need Python 3.11 or
newer, a shell and an internet connection to install the compiler and fetch the
model. No board or Arm compiler is needed to generate the C module.

For step five, use a working Zephyr workspace with Apollo510 support, the
Zephyr SDK and ns-cmsis-nn. The integration page supplies the application files
and build command. Step six additionally needs the Apollo510 EVB, its J-Link
connection, programming tools and a serial terminal.

If you already use another firmware environment, follow the same host steps and
choose the matching module format in
[Firmware integration](https://ambiqai.github.io/helia-aot/getting-started/integrate/). The format selects
build files and platform hooks; the target selects hardware assumptions.

## Build and validate a module

- [Installation](https://ambiqai.github.io/helia-aot/getting-started/install/): Install the CLI and verify which version you are running.
- [Model and target requirements](https://ambiqai.github.io/helia-aot/getting-started/targets/): Read the Apollo510 target and understand the model checks conversion performs.
- [First conversion](https://ambiqai.github.io/helia-aot/getting-started/convert/): Verify the model and golden file hashes, save a configuration and emit the module.
- [Generated files](https://ambiqai.github.io/helia-aot/getting-started/module/): Find the public API, model I/O, memory report and generated test case.
- [Firmware integration](https://ambiqai.github.io/helia-aot/getting-started/integrate/): Build a complete application that calls the test and logs its status.
- [On-device validation](https://ambiqai.github.io/helia-aot/getting-started/validate/): Program the board, capture the comparison records and assess the result.

After step four you have generated source. After step five you have linked
firmware. Only execution with output comparison establishes a numerical match
for the chosen input and execution environment. A simulator result and a
physical-board result should be recorded separately.

## Optional next steps

- [Profiling](https://ambiqai.github.io/helia-aot/getting-started/measure/): Measure a validated model under recorded board and build conditions.
- [Migrating from heliaRT](https://ambiqai.github.io/helia-aot/getting-started/from-heliart/): Adapt the inference call sequence, memory ownership and validation workflow.

Use the [Reference](https://ambiqai.github.io/helia-aot/reference/) for exact settings and interfaces,
and the [Guides](https://ambiqai.github.io/helia-aot/guide/) when adapting the working example to your model.
