CMSIS-Pack Integration
heliaRT can be packaged as a source-only CMSIS-Pack for teams that use Keil MDK, CMSIS-Toolbox, CMSIS-Pack Manager, or Arm ecosystem IDEs. The pack is generated from the same CMake source manifest used by the source, Zephyr, and NSX builds.
Current scope
The repository builds and validates a local source pack. Checked-in csolution examples and published pack-index distribution are still tracked by #124.
Build A Local Pack
Build the pack from a checkout:
The output follows CMSIS-Pack naming conventions:
The pack version comes from the release-please-managed HELIA_RT_VERSION macro in tensorflow/lite/micro/helia_rt_version.h.
Validate The Pack
The CI pack job runs the repository's PDSC contract checker and packchk from CMSIS-Toolbox. To reproduce the same checks locally, install CMSIS-Toolbox, then run:
python3 tools/cmsis_pack/build_pack.py --output dist --keep-stage
PACK=$(ls dist/Ambiq.helia-rt.*.pack | head -1)
STAGE="${PACK%.pack}.stage"
python3 tools/cmsis_pack/check_pdsc.py "${PACK}"
packchk --disable-validation "${STAGE}/Ambiq.helia-rt.pdsc"
packchk --disable-validation keeps the semantic pack checks enabled while avoiding a CMSIS-Toolbox 2.13.0 XSD-validation crash seen on this generated PDSC. The workflow still parses and validates the archive structure and PDSC contract separately.
Install With cpackget
After building the pack, add it to a local CMSIS-Pack installation:
Use the exact file name generated in dist/. A consumer project can then select one of the pack's component variants.
Component Variants
The generated pack exposes these source-build variants:
| Variant | Backend | Notes |
|---|---|---|
Reference |
Portable TFLM kernels | No external NN library dependency. |
CMSIS-NN |
Arm CMSIS-NN kernels | Uses the open CMSIS-NN backend source set. |
HELIA |
Ambiq HELIA kernels | Requires the Ambiq ns-cmsis-nn / heliaCORE pack dependency. |
Current Recommendation
Use CMSIS-Pack when your application is already built around CMSIS-Toolbox or Keil tooling. For Zephyr or neuralSPOT projects, the native integration paths remain more direct:
| Path | Best for |
|---|---|
| Zephyr module | Product integration, Kconfig backend selection, source or prebuilt bundles. |
| neuralSPOT | Fast model profiling and deployment on Ambiq evaluation boards. |
| Source build | Custom build systems, direct static library linkage, and source-level debugging. |
Compatibility Goals
The CMSIS-Pack flow should not change the application-facing runtime model. Teams should still use the familiar .tflite model format, MicroInterpreter lifecycle, resolver registration pattern, and static tensor arena strategy.
Next Steps
- Zephyr setup — current recommended product integration path
- Toolchains — compare GCC, Arm Compiler 6, and ATfE
- SPEED vs SIZE — understand HELIA source-build kernel profiles