Module Model¶
Module Classes¶
NSX modules are classified as:
soc: SoC-level HAL/CMSIS/startup integration.sdk_provider: SDK-family binding (for example AmbiqSuiter3/r4/r5).board: board-specific configuration and policy.runtime: shared runtime support for apps/tools.portable_api: thin convenience wrappers.algorithm: algorithm/functionality modules.tooling: helpers for build/deploy/view workflows.backend_specific: modules tied to a specific backend/board class.
block-beta
columns 4
block:app:4
columns 4
A["App source code"]:4
end
block:runtime:4
columns 4
B1["runtime"] B2["algorithm"] B3["portable_api"] B4["backend_specific"]
end
block:platform:4
columns 4
C1["board"]:2 C2["tooling"]:2
end
block:hw:4
columns 3
D1["soc"] D2["sdk_provider"] D3["CMSIS startup"]
end
Backend Policy¶
- NSX module eligibility requires
support.ambiqsuite=true. - NSX modules may also support Zephyr (
support.zephyr=true). - Zephyr-only modules are out of NSX registry scope.
- For dual-support modules, Zephyr integration lives in a
/zephyrsubfolder in the same repo.
Baseline vs Optional Stacks¶
Baseline NSX profiles should stay focused on AI inference and profiling bring-up:
- SoC HAL + BSP + CMSIS/startup
- runtime core
- profiling/perf instrumentation helpers
Non-essential by default (optional modules only):
- BLE stacks (for example Cordio)
- network/transport stacks
- RTOS stacks (for example FreeRTOS)
Rationale:
- Zephyr support may lag AmbiqSuite by multiple months.
- For new products and performance-sensitive profiling, AmbiqSuite-backed NSX flows are the primary path.
Dependency Rules¶
- Module dependencies are declared in
nsx-module.yaml. - CMake target dependencies remain authoritative during build.
- NSX CLI resolves dependency closure before mutation.
- Cycles are rejected.
- Board modules must depend on exactly one SoC module.
Semantic Metadata For Discovery¶
nsx-module.yaml may also carry optional semantic fields used by agents and
discovery tooling.
Current optional fields:
summary: one-sentence plain-language description of the modulecapabilities: flat capability tags such asprofiling,pmu,logging, ori2cuse_cases: concrete tasks this module is a good fit foranti_use_cases: cases where this module is the wrong choiceagent_keywords: extra search terms that help intent mappingexample_refs: references to example apps or docscomposition_hints: pairing or composition notes for planning tools
These fields do not change build behavior. They exist so command-discovery and module-discovery surfaces can support LLM and agent workflows without forcing freeform inference from repo names or prose docs.
Compatibility Rules¶
Each module declares compatibility for:
- boards
- socs
- toolchains
Compatibility is enforced at CLI operation time (hard-fail on mismatch) before build invocation.
Recommended interpretation:
- use broad compatibility (
*) for generic modules - constrain SoC-family infrastructure modules by SoC
- constrain board helper/example modules by board only when wiring or EVB assumptions require it
Source Modes for Modules¶
NSX supports module sources in these forms:
- curated source repos or local repo snapshots
- local filesystem path source (registered per app)
- vendored app-local copies after
nsx create-appornsx module add