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

- Projects
- Editing
- Build
- Debug
- CLI Toolbox
  - API Manual
  - DevOps Corner
- Toolchains
  - GCC
  - LLVM
- Testing/Validation
- Integration with External Tools

# Development

## Projects

- Project Creation and Templates

  - Creating from Scratch

  - Using Project Templates

- Project Import and Export

  - Importing Legacy Projects

  - Exporting Projects for Sharing

- Project Configuration Management

  - Managing Build Profiles (Debug/Release)

  - Environment Variables and Paths

- Multi-Project Workspaces

  - Handling Dependencies Between Projects

  - Workspace Settings and Management

## Editing

- Source Code Editing Features

  - Syntax Highlighting and Language Support

  - Code Completion and IntelliSense

- Code Refactoring and Navigation

  - Rename, Extract Methods, and Inline

  - Navigation Shortcuts (Go to Definition, Peek)

- Code Snippets and Templates

  - Creating Custom Snippets

  - Using Built-in Snippets

- Version Control Integration

  - Git Workflow in VS Code

  - Handling Merge Conflicts

## Build

- Build System Overview

  - Supported Build Systems (Make, CMake, Custom)

  - Build Task Configuration in VS Code

- Build Profiles and Optimization

  - Configuring Debug vs Release Builds

  - Compiler Optimization Flags

- Build Output and Diagnostics

  - Interpreting Build Logs

  - Handling Errors and Warnings

- Incremental and Clean Builds

  - Managing Build Artifacts

  - Cleaning and Rebuilding Projects

## Debug

- Debug Configuration Setup

  - Launch Configurations

  - Debug Adapter Protocol (DAP) Overview

- Debugging Controls and Features

  - Breakpoints and Watchpoints

  - Call Stack and Thread Inspection

- Peripheral and Register Debugging

  - Viewing and Modifying Peripheral Registers

  - Memory Inspection and Manipulation

- Advanced Debugging

  - Trace and Profiling Integration

  - RTOS-Aware Debugging

## CLI Toolbox

### API Manual

- CLI Command Reference

- Scripting and Automation

- Extending CLI with Custom Commands

### DevOps Corner

- CI/CD Pipeline Integration

- Automated Builds and Tests

- Artifact Management and Deployment

## Toolchains

### GCC

- GCC Installation and Configuration

- GCC Compiler Flags and Options

- Debugging with GCC Toolchain

### LLVM

- LLVM Toolchain Overview

- Clang Compiler Features

- Using LLVM Debugger (LLDB)

## Testing/Validation

- Unit Testing Frameworks

  - Integration with Google Test, Unity, etc.

- Static Code Analysis

  - Tools and Configuration

- Code Coverage

  - Measuring and Reporting

- Continuous Testing

  - Integration with CI Pipelines

## Integration with External Tools

- Third-Party Debuggers and Probes

  - Supported Hardware Debuggers

  - Configuration and Usage

- Middleware and SDK Integration

  - Importing External SDKs

  - Managing Middleware Components

- Cloud Services and Remote Tools

  - Remote Debugging and Deployment

  - Cloud Build and Test Services