s32ct-peripherals-facade
Headless facade that fronts the Peripherals tool of NXP S32 Configuration Tools via `nxp_s32ct_execute_action(action_name="s32ct.configure_peripherals", params={...})`. Triggers when users ask to impo
SKILL.mdskills/s32ct/s32ct-peripherals-facade/SKILL.md
GitHubS32CT Peripherals - Headless Facade
Thin per-tool facade over the generic s32ct-cli skill that exposes only the
flags relevant to the Peripherals tool of S32 Configuration Tools. This
skill fronts the nxp_s32ct_execute_action MCP tool with action_name="s32ct.configure_peripherals"
(the tool_name is pre-filled from the action). All shared launcher
plumbing, validation, and auto-retry behavior is inherited from s32ct-cli.
When to use
Use this skill when:
- You need to regenerate peripheral driver source from a
.mex. - You need to import existing
.cfiles (-ImportC) or a whole toolchain project (-importProject). - You need to migrate components to a specific toolchain version or the highest available version.
- You need to export Peripherals artifacts: source, HTML, or MEX.
Migration note: The standalone peripherals MCP tool no longer exists -
it has been replaced by the unified nxp_s32ct_execute_action dispatcher's
peripherals action. Existing inputs are unchanged.
Do not use this skill for:
- Cross-tool operations combining flags from multiple tools -> use
s32ct-cli(s32ct.configure_cli). - Pins / Clocks-only regeneration - use the matching facade.
Available Capabilities
| Type | Name | Invocation |
|---|---|---|
| MCP tool | nxp_s32ct_execute_action |
nxp_s32ct_execute_action(action_name="s32ct.configure_peripherals", params={...}) |
| Resource | skill://nxp_s32ct/s32ct-peripherals-facade |
Auto-loaded on trigger |
Quickstart
1. Load or bootstrap a .mex
Tool: nxp_s32ct_execute_action
Action: s32ct.configure_peripherals
Input: project_path="<path>.mex" # OR empty_config=True + mcu + sdk_version
Output: {exit_code, command, stdout_tail, stderr_tail, values, summary}
2. Apply Peripherals-specific modifications and export
nxp_s32ct_execute_action(
action_name="s32ct.configure_peripherals",
params={
"project_path": "<path>.mex",
"import_c": ["<a>.c", "<b>.c"], # -ImportC
"import_project": "<project-root>", # -importProject
"sdk_path": "<sdk-manifest-dir>", # -sdkPath
"overwrite_with_sdk_sources": True, # -overwriteWithSdkSources
"migrate_to_toolchain_version": "X.Y", # -MigrateComponentsToToolchainVersion
"migrate_to_highest_version": True, # -MigrateComponentsToHighestVersion
"custom_copyright": "<header>.txt",
"output_path_overrides": "<rules>.txt",
"export_kind": "ExportSrc", # or ExportAll|ExportHTML|ExportMEX
"output_dir": "<output-dir>",
},
)
3. Verify the export
Check that output_dir contains the expected artifacts and exit_code == 0.
Inputs
Mode (mutually exclusive)
project_path- existing.mexto load via-Load.empty_config- ifTrue,-EmptyConfig; requiresmcu+sdk_version.config_name--ConfigName <...>.
Tool-specific
import_c-.cfiles via-ImportC.import_project- toolchain project root via-importProject.sdk_path- SDK manifest dir via-sdkPath.overwrite_with_sdk_sources--overwriteWithSdkSources.migrate_to_toolchain_version--MigrateComponentsToToolchainVersion.migrate_to_highest_version--MigrateComponentsToHighestVersion.custom_copyright,output_path_overrides- same as Pins/Clocks.
Export
export_kindin {ExportAll, ExportSrc, ExportHTML, ExportMEX}.output_dir- required whenexport_kindis set.
Launcher / plumbing (shared with s32ct-cli)
data_dir(-data <workspace>),extra_args,s32ct_launcher,launcher_ini,timeout_s(default 600).
Output
Same as s32ct-cli:
{ exit_code, command, stdout_tail, stderr_tail, values, summary }.
Guardrails
Scope
- Only drives the peripherals action of
nxp_s32ct_execute_action. For cross-tool workflows uses32ct-cli(s32ct.configure_cli) instead. - Does not modify hardware or program devices.
Destructive actions
- Exports overwrite files in
output_dir. Confirm the target directory is safe or empty before invoking withexport_kindset. overwrite_with_sdk_sourceswill replace files with SDK originals.
Refuse-and-escalate
- Missing
project_pathAND missingempty_config/mcu/sdk_versioncombination -> ask which mode. - Unknown
export_kindvalue -> list allowed values. - Retryable
IllegalStateException-> auto-retry once, then escalate.
Validation loop
exit_code == 0.output_dircontains the expected artifacts for the chosenexport_kind.- For source exports: files compile / parse cleanly in a follow-up step.
Out of scope
- Interactive GUI operations - use S32 Configuration Tools directly.
- Cross-tool operations combining multiple tools' flags - use
s32ct-cli. - Distribution portability handled transparently; see
s32ct-distributions.
See Also
s32ct-cli- generic dispatcher with the full ~50-parameter surface.s32ct-distributions- launcher selection.s32ct-pins-facade,s32ct-clocks-facade- sibling regeneration facades sharingcustom_copyright/output_path_overrides.