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. .packarchiving is built in (pure-Pythonzipfile);packchkvalidation 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.