SDK Provider Model¶
Purpose¶
SDK provider modules decouple NSX board and SoC modules from hardcoded SDK paths and make provider selection explicit across AmbiqSuite major lines.
Provider Families¶
Current families:
ambiqsuite-r3ambiqsuite-r4ambiqsuite-r5
Provider modules:
nsx-ambiqsuite-r3nsx-ambiqsuite-r4nsx-ambiqsuite-r5
Provider Revisions¶
Provider revisions are board-selectable.
Examples:
nsx-ambiqsuite-r3usesr3.1.1nsx-ambiqsuite-r4defaults tor4.5.0nsx-ambiqsuite-r5may user5.1,r5.2,r5.2-alpha, orr5.3
The selected revision is persisted in generated app metadata.
Contracts¶
Each provider module is represented in metadata as:
module.type = sdk_providermodule.category = sdk_providermodule.provider = ambiqsuite-r*
Board modules bind to providers using:
- a required dependency on the provider module
- a required SDK provider constraint
Wrapper Modules¶
Release-specific wrapper modules sit above the raw provider payload:
nsx-ambiq-hal-r3,nsx-ambiq-hal-r4,nsx-ambiq-hal-r5nsx-ambiq-bsp-r3,nsx-ambiq-bsp-r4,nsx-ambiq-bsp-r5
These wrappers expose the stable NSX-facing build surfaces while the
nsx-ambiqsuite-r* modules remain mostly raw imported SDK drops.
Root Resolution¶
Provider selection sets:
NSX_SDK_PROVIDERNSX_AMBIQSUITE_ROOTNSX_AMBIQSUITE_VERSIONNSX_SELECTED_SDK_TARGET
Resolution order:
- vendored app-local SDK root under
app/modules/nsx-ambiqsuite-r*/sdk - explicit override variables when provided
Decomposition Policy¶
Raw provider repos carry the imported SDK payload.
Wrapper modules expose:
- HAL include surfaces and prebuilt HAL libraries
- BSP include surfaces and prebuilt BSP libraries
- the minimal utility sources required by core bring-up
Board modules remain responsible for:
- startup selection
- linker selection
- compile definitions
- flash and SWO settings