Overview¶
NSX provides a modular bare-metal application workflow for Ambiq targets.
Primary Goals¶
- Fast bootstrap for board-specific apps.
- Reproducible module and board vendoring into generated apps.
- Clear build behavior driven by CMake.
- Small, inspectable projects for bring-up, profiling, and feature validation.
Core Principles¶
- AmbiqSuite-first baseline for bare-metal targets.
- Single-target apps by default.
- CMake as build truth.
- Explicit metadata for dependency and compatibility decisions.
- Wrapper modules for curated SDK consumption.
Implemented Architecture¶
NSX currently provides:
- a Python CLI (
nsx) - packaged app templates
- packaged CMake helpers
- built-in board definitions
- curated lock metadata for known module sets
Generated apps receive:
- app-local
cmake/nsx/ - vendored
modules/ - vendored
boards/ - target metadata in
nsx.yml
Current Layering¶
flowchart BT
SDK["SDK Provider\nnsx-ambiqsuite-r3 / r4 / r5"] --> HAL["HAL + BSP Wrappers\nnsx-ambiq-hal-r* / nsx-ambiq-bsp-r*"]
HAL --> INT["Integration\nnsx-soc-hal / nsx-cmsis-startup"]
INT --> RT["Runtime\nnsx-core / nsx-harness / nsx-utils / nsx-peripherals"]
RT --> APP["App"]
- raw SDK provider modules such as
nsx-ambiqsuite-r3,nsx-ambiqsuite-r4, andnsx-ambiqsuite-r5 - release-specific wrapper modules such as
nsx-ambiq-hal-r*andnsx-ambiq-bsp-r* - shared NSX integration modules such as
nsx-soc-halandnsx-cmsis-startup - higher-level runtime modules such as
nsx-core,nsx-harness,nsx-utils, andnsx-peripherals
Target Environment¶
NSX is intended for:
- board bring-up
- smoke tests
- profiling and instrumentation workflows
- small targeted examples such as USB or interface validation