Skip to content

CMSIS-Pack module emission

heliaAOT can emit an Open-CMSIS-Pack .pdsc manifest alongside the standard generated src/ and includes-api/ trees. This lets a downstream tool (gen-pack, packchk, etc.) archive the directory verbatim into a redistributable Ambiq.<module-name>.<version>.pack.

Enabling

Select the cmsis_pack module type when invoking helia-aot convert. The output format is driven by the --module.path suffix:

--module.path suffix Output
(directory) Unpacked tree containing Ambiq.<name>.pdsc, LICENSE, src/, includes-api/.
.pack Single Open-CMSIS-Pack archive (a zip with the .pdsc at root), ready for cpackget add.
.zip Plain zip wrapping the directory tree (not a valid CMSIS-Pack archive).
# Unpacked tree (useful for inspection / manual gen-pack runs)
helia-aot convert \
    --model.path model.tflite \
    --module.path ./out \
    --module.type cmsis_pack \
    --module.name my_model \
    --module.prefix aot

# Single .pack archive ready to install with cpackget
helia-aot convert \
    --model.path model.tflite \
    --module.path ./Ambiq.my_model.0.15.0.pack \
    --module.type cmsis_pack \
    --module.name my_model \
    --module.prefix aot

HeliaCORE dependency

The generated .pdsc declares a hard requirement on the HeliaCORE pack (Ambiq.NS-CMSIS-NN), which provides the underlying CMSIS-NN kernels heliaAOT-emitted code calls into. The HeliaCORE pack must be installed (e.g. via cpackget add Ambiq.NS-CMSIS-NN) for projects consuming a heliaAOT-generated pack to resolve.

Scope and limitations

  • Single target — the pack is generated for the SoC family selected via --platform.name. Multi-target packs are not yet supported.
  • .pack archiving is built in (pure-Python zipfile); packchk validation is not yet integrated into heliaAOT itself — run it manually against the emitted directory or .pack. CI integration is tracked in issue #192.
  • The pack vendor is fixed to Ambiq. Vendor configurability can be added on request.