STM32CubeIDE for Visual Studio Code Documentation

Table Of Contents

- STM32CubeIDE for Visual Studio Code
- Introduction
  - Overview
  - System requirements
  - Release note
- Basic Concepts
  - User interface
  - Command-line tools
  - Visual Studio Code extension packs
  - Bundles
  - CMake
  - Toolchains
  - STMicroelectronics Arm Clang Toolchain for STM32
- Getting Started
  - Installation
  - First project creation
- Workspace and extension workflow
  - Workspace overview
  - Extension commands
  - Project files
  - Multi-project workspaces
- Tutorials
  - Migrating from STM32CubeIDE for Visual Studio Code extension 2.x to 3.x
  - Dual-core STM32 projects
  - Power management
  - RTOS-based STM32 projects
  - Firmware security and integrity
- Development
  - Projects
  - Editing
  - Build
  - Debug
  - API manual
  - Integration with external tools
  - Testing and validation
- Troubleshooting
  - Frequently asked questions
  - Known issues
  - Support

### On this page

- Breaking changes
- New features

# Release note

This release represents a major advancement in delivering a comprehensive and efficient Visual Studio Code-based development environment for STM32 microcontroller projects.

This release introduces a new platform architecture that serves as the basis for the evolving STM32CubeIDE for Visual Studio Code environment. As with any innovative tool, the platform will undergo a maturation process.

Below are the key changes and features from version 2.x to version 3.x and newer.

## Breaking changes

- Complete architecture redesign: The tool architecture has been split into three major building blocks to create a flexible, maintainable and updatable platform consisting of the following blocks: graphical user interface (GUI), command-line interface (CLI) tools, and STM32 device support.

- Graphical user interface (GUI): The platform’s single extension is transformed into an extension pack, offering a more modular, maintainable and flexible setup.

- Command-line interface (CLI) tools: A new bundle manager enables Visual Studio Code to download required CLI tools. This replaces the all-in-one STM32CubeCLT package. The bundle manager provides developers with flexibility, updatability and reproducibility in CLI tooling.

- STM32 device support: STM32 device support is decoupled from Visual Studio Code and sourced via CMSIS-PACK device family packs (DFPs). Developers can now start using a new microcontroller without installing a new STM32CubeCLT package.

- Enhanced debugging: A new, advanced debugging experience is available, leveraging a new STMicroelectronics-owned debug adapter protocal (DAP) implementation that supports both ST-LINK and SEGGER J-Link debug probes.

- Clangd integration: The update now relies on clangd for managing C/C++ code indexing, enhancing code navigation and analysis capabilities.

- Automatic discovery of STM32Cube projects: This feature automatically detects STM32Cube projects, streamlining the setup and configuration process.

## New features

- Bundle manager view: A dedicated view for managing bundles is introduced, simplifying the management of project tool dependencies.

- Cube CLI command: The cube CLI command is now available, providing efficient tool management through command-line operations.

- Build analysis solution: A new build analysis solution is integrated, offering insights into build performance and optimization opportunities.

- Board manager: The board manager view allows developers to display the ST-LINK serial number and update the ST-LINK firmware.

- Enhanced RTOS debug: The open-source debug views are complemented with two additional tree views that show additional kernel objects and the full call stack for all real-time operating system (RTOS) threads. Supported RTOSes are FreeRTOS and ThreadX.