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 configurations

    • id: Tool identifier (e.g., "arm-none-eabi-gcc", "zephyr-sdk")

    • version: Tool version string

    • installPath: Absolute path to tool installation directory

    • isToolchain: Boolean indicating if tool is a toolchain

onsemi.certificatePath

Type: string

Default: ""

Description: Path to a custom self-signed certificate file for HTTPS requests (useful for corporate proxies).

Example:

{
  "onsemi.certificatePath": "C:/certs/corporate-ca.crt"
}

onsemi.allowInsecureTls

Type: boolean

Default: false

Description: Disable TLS verification (not recommended for production).

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 name

  • active: Whether this is the active configuration

  • args: Array of additional arguments

  • envs: Array of environment variables (same format as onsemi.envVars)

Zephyr-Specific Properties:

  • boardName: Target board identifier

  • sysbuild: 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 file

  • cacheVars: Array of CMake cache variables

    • name: Variable name

    • value: Variable value

  • configurationPreset: CMake configuration preset name

  • buildPreset: CMake build preset name

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: "mscpp"

Options: "clangd" | "mscpp"

Scope: resource

Description: Select IntelliSense provider.

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" }
      ]
    }
  ]
}