STM32L031, QFN28 package demonstration

VS Code Environment Setup

Prerequisites

  • NodeJS + NPM
  • Python + PIP
  • Git
  • VS Code

pyOCD

  • pip install pyocd --upgrade On Windows install as admin, otherwise install is local and PATH setting is required.
  • pyocd pack update
  • pyocd pack find stm32l031
  • pyocd pack install STM32L031G6Ux

OpenOCD

  • Download the latest version from https://github.com/xpack-dev-tools/openocd-xpack/releases or build it yourself following this guide
  • Unzip it to OpenOCD folder in C:\Program Files
  • Set OpenOCD system variable to 'C:\Program Files\OpenOCD'
  • Add %OpenOCD%\bin to system PATH variable
  • Set XDG_CACHE_HOME env variable to %USERPROFILE%\AppData\Local\Temp to prevent symbol cache path error

Note: xpm utility does not really support global installations (yet), hence I suggest the above approach.

SVD file - MPU specific

Download from https://github.com/posborne/cmsis-svd/tree/master/data/STMicro and place in the root folder.

GNU Arm Embedded Toolchain

  • Required version: arm-none-eabi (bare-metal target) 10.3-2021.07
  • Do NOT use latest versions 11.x and 12.x. Newer versions currently have known bugs which may impact build and/or debug process.
  • Set MBED_GCC_ARM_PATH env variable to C:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi\10.3 2021.07\bin
  • Add MBED_GCC_ARM_PATH env variable to Windows Path env variable (%MBED_GCC_ARM_PATH%) - if not set by the installer.

Required NPM packages

  • npm install -g cppbuild
  • npm install -g shx
  • npm install -g @serialport/terminal

Required VS Code plug-ins

VS Code config

  • Set the default VS Code terminal to Git Bash. Otherwise, VS Code may try to execute task NPM packages as (e.g.) PowerShell scripts.

Recommended VS Code plug-ins

  • LinkerScript (Zixuan Wang)
  • Arm Assembly (dan-c-underwood)
  • Code Spell Checker (Street Side Software)
  • Build++ (Tomasz Jastrzębski)

Optional

References

STM32L031G6 MPU docs

GCC Compiler