Configuration
Global Settings (User/Workspace)
Configure these in User Settings (Ctrl+,) or Workspace Settings:
onsemi.repositories
Type: object
Default: {}
Description: Repository configurations indexed by repository path.
Example:
{
"onsemi.repositories": {
"c:\\workspace\\zsdk": {
"projectType": "zephyr",
"tools": [
{
"id": "zephyr-sdk",
"installPath": "C:\\Users\\username\\AppData\\Local\\onsemi\\tools\\zephyr-sdk\\0.17.4",
"version": "0.17.4",
"isToolchain": true
},
{
"id": "cmake",
"installPath": "C:\\Users\\username\\AppData\\Local\\onsemi\\tools\\cmake\\4.0.3\\bin",
"version": "4.0.3",
"isToolchain": false
},
]
},
"c:\\cmake-project": {
"projectType": "cmake",
"tools": [
{
"id": "cmake",
"installPath": "C:\\Users\\username\\AppData\\Local\\onsemi\\tools\\cmake\\4.0.3\\bin",
"version": "4.0.3",
"isToolchain": false
},
{
"id": "arm-none-eabi-gcc",
"installPath": "C:\\Users\\username\\AppData\\Local\\onsemi\\tools\\arm-none-eabi-gcc\\14.3.1\\bin",
"version": "14.3.1",
"isToolchain": true
}
]
}
}
}
Properties:
projectType: Repository/project type -"zephyr","cmake", or"unknown"tools: Array of tool configurationsid: Tool identifier (e.g.,"arm-none-eabi-gcc","zephyr-sdk")version: Tool version stringinstallPath: Absolute path to tool installation directoryisToolchain: Boolean indicating if tool is a toolchain
onsemi.certificatePath
Type: string
Default: ""
Description: Path to a custom CA certificate file to trust for HTTPS requests, Git SSL verification (GIT_SSL_CAINFO), and pip installs (--cert). Useful for corporate proxies that use self-signed or internal CA certificates.
Example:
{
"onsemi.certificatePath": "C:/certs/corporate-ca.crt"
}
onsemi.allowInsecureTls
Type: boolean
Default: false
Description: Disables TLS certificate verification for onsemi Studio HTTP requests, Git SSL verification, and pip trusted-host checks (not recommended for production).
onsemi.quickStart.enabled
Type: boolean
Default: true
Description: Show the Quick Start view in the onsemi Studio Activity Bar. The Quick Start view surfaces the Workspace and Tools Setup, Import Application, and Create New Application wizards alongside links to documentation. Set to false to hide the view from the sidebar.
Example:
{
"onsemi.quickStart.enabled": false
}
Project-Specific Settings (Folder/Resource)
These settings apply to individual project folders and are typically stored in .vscode/settings.json:
onsemi.workspacePath
Type: string
Default: ""
Description: Absolute path to the workspace/repository containing this project.
onsemi.toolchain
Type: string
Default: ""
Description: Absolute path to the toolchain directory.
Example: "C:\\Users\\username\\AppData\\Local\\onsemi\\tools\\zephyr-sdk\\0.17.4"
onsemi.venv.path
Type: string
Default: ""
Description: Path to Python virtual environment.
Example: "C:\\zephyr-workspace\\.venv"
onsemi.args
Type: array
Default: []
Scope: resource
Description: Additional command-line arguments for build commands.
Example:
{
"onsemi.args": ["--args1", "--args2"]
}
onsemi.envVars
Type: array
Default: []
Scope: resource
Description: Additional environment variables for build commands.
Example:
{
"onsemi.envVars": [
{
"name": "ZEPHYR_BASE",
"value": "C:/zephyr-workspace/zephyr"
},
{
"name": "CMAKE_BUILD_PARALLEL_LEVEL",
"value": "8"
}
]
}
onsemi.build.configurations
Type: array
Default: []
Scope: resource
Description: Build configurations for the project.
Common Properties (all project types):
name(required): Configuration nameactive: Whether this is the active configurationargs: Array of additional argumentsenvs: Array of environment variables (same format asonsemi.envVars)
Zephyr-Specific Properties:
boardName: Target board identifiersysbuild: Enable sysbuild mode (true/false)pristine: Pristine build mode ("auto","always", or"never")arch: Target architecture (e.g.,"arm","riscv64")
Zephyr-Specific Configuration Example:
{
"onsemi.build.configurations": [
{
"name": "debug",
"active": true,
"boardName": "evb",
"sysbuild": false,
"pristine": "auto",
"args": ["--", "-DCONFIG_DEBUG_OPTIMIZATIONS=y"],
"envs": [
{
"name": "CONF_FILE",
"value": "prj_debug.conf"
}
]
},
{
"name": "release",
"active": false,
"boardName": "evb",
"sysbuild": true,
"args": ["--", "-DCONFIG_SIZE_OPTIMIZATIONS=y"],
"envs": [
{
"name": "CONF_FILE",
"value": "prj_release.conf"
},
{
"name": "EXTRA_DTC_OVERLAY_FILE",
"value": "boards/onnn_rsl15_evb.overlay"
}
]
}
]
}
CMake-Specific Properties:
buildType: CMake build type ("Debug","Release","RelWithDebInfo","MinSizeRel")generator: CMake generator (e.g.,"Ninja")toolchainFile: Path to CMake toolchain filecacheVars: Array of CMake cache variablesname: Variable namevalue: Variable value
configurationPreset: CMake configuration preset namebuildPreset: CMake build preset namesourceDir: Per-build-configuration override of the CMake source directory (relative to the project root). Used for superbuild layouts where different build configurations point at different sub-projects of the same workspace folder. When omitted, the project’s default source directory is used.
CMake-Specific Configuration Example:
{
"onsemi.build.configurations": [
{
"name": "Debug",
"active": true,
"buildType": "Debug",
"generator": "Ninja",
"toolchainFile": "C:/cmake-toolchains/arm-none-eabi.cmake",
"cacheVars": [
{
"name": "CMAKE_EXPORT_COMPILE_COMMANDS",
"value": "ON"
},
{
"name": "BUILD_TESTING",
"value": "OFF"
}
]
},
{
"name": "Release",
"active": false,
"buildType": "Release",
"generator": "Ninja",
"configurationPreset": "release-preset",
"buildPreset": "release-build"
}
]
}
IntelliSense Settings
onsemi.intelliSenseProvider
Type: string
Default: "clangd"
Options: "clangd" | "mscpp"
Scope: resource
Description: Select IntelliSense provider. clangd is the default in 0.5; mscpp (Microsoft C/C++) remains a supported alternative.
Example:
{
"onsemi.intelliSenseProvider": "clangd"
}
onsemi.autoGenerateClangdConfig
Type: boolean
Default: true
Scope: resource
Description: Automatically generate .clangd configuration file.
onsemi.disableIntelliSense
Type: boolean
Default: true
Scope: resource
Description: Disable automatic IntelliSense configuration.
Complete Project Settings Example
Zephyr Project (.vscode/settings.json):
{
"onsemi.workspacePath": "C:\\workspace\\zephyr",
"onsemi.toolchain": "C:\\Users\\username\\AppData\\Local\\onsemi\\tools\\zephyr-sdk\\0.17.4",
"onsemi.venv.path": "c:\\workspace\\zephyr\\.venv",
"onsemi.build.configurations": [
{
"name": "debug",
"active": true,
"boardName": "evb",
"pristine": "auto",
"envs": [
{ "name": "CONF_FILE", "value": "prj_debug.conf" },
{ "name": "DTC_OVERLAY_FILE", "value": "C:/boards/evb.overlay" }
]
},
{
"name": "release",
"active": false,
"boardName": "evb",
"sysbuild": true,
"envs": [{ "name": "CONF_FILE", "value": "prj_release.conf" }]
}
]
}
CMake Project (.vscode/settings.json):
{
"onsemi.workspacePath": "C:\\workspace\\cmake-project",
"onsemi.toolchain": "C:\\Users\\username\\AppData\\Local\\onsemi\\tools\\arm-none-eabi-gcc\\14.3.1\\bin",
"onsemi.build.configurations": [
{
"name": "Debug",
"active": true,
"args": [],
"envVars": [],
"buildType": "",
"generator": "Ninja",
"targets": [],
"configurationPreset": "Debug-CM33",
"buildPreset": "",
"toolchainFile": "",
"cacheVars": [
{ "name": "CMAKE_EXPORT_COMPILE_COMMANDS", "value": "ON" },
{ "name": "BUILD_TESTING", "value": "OFF" }
]
},
{
"name": "Release",
"active": false,
"args": [],
"envVars": [],
"buildType": "",
"generator": "Ninja",
"targets": [],
"configurationPreset": "MinSizeRel-CM33",
"buildPreset": "",
"toolchainFile": "",
"cacheVars": [
{ "name": "CMAKE_EXPORT_COMPILE_COMMANDS", "value": "ON" }
]
}
]
}
SDK Manifest (sdk.json)
Bare-metal SDKs and projects derived from them describe themselves to the extension through an sdk.json file. Two flavors exist:
SDK-side ``sdk.json`` (sits at the root of an installed SDK):
name: Stable SDK identifier used for dependency matching (e.g.,"onsemi-bm-sdk")version: Semver version of the SDK installation (e.g.,"1.4.2")envVarName: Name of the environment variable the extension exports for this SDK so projects can reference it fromCMakePresets.jsonvia$env{...}(e.g.,"ONSEMI_BM_SDK"→ used as$env{ONSEMI_BM_SDK})
Project-side ``sdk.json`` (sits inside the project, alongside CMakePresets.json):
sdkDependencies: Map of SDK name → semver range that the project requires. Example:{ "sdkDependencies": { "onsemi-bm-sdk": "^1.4.0", "onsemi-rsl15-sdk": ">=2.0.0 <3.0.0" } }
When the project is configured the extension resolves each entry against the installed SDKs registered under onsemi.repositories. If a dependency cannot be satisfied the extension reports an actionable error of the form “This project requires <NAME> <range>; installed: <list>” and the configure step is aborted. When all dependencies are satisfied the matching SDK’s envVarName is exported into the project’s environment so the corresponding $env{...} substitution in CMakePresets.json resolves to the SDK’s install path.