Developing Cortex M3 Applications Using Visual Studio Code

From EdWiki

Revision as of 14:45, 30 March 2022 by Jshankar (Talk | contribs) (Required Plugins)

Developing Cortex M3/M4 Applications Using Visual Studio Code

Visual Studio Code (short VSCode) can be used to edit the source code, build the application and finally debug it.

Required Software Components

In contrast to fully integrated IDEs, setting up Visual Studio Code requires us to setup a number of software packages, which finally work together to build the complete development environment. The software packages can be split into three groups:

  1. VSCode and plugins
  2. ARM Build Tools (compiler etc.)
  3. Debug tools
  • The packages can be installed in any order
  • VSCode must be installed before VSCode plugins can be installed.

1. Visual Studio Code and Plugins

Visual Studio Code

We can look at VSCode as an intelligent text editor which provides an extensive framework to add functionality through plugins. VSCode includes a project explorer, which can show the contents of one or multiple folders as a workspace. There is more information on required plugins further down in this list.

Required Plugins

Plugin Name
Code Name
Vscode plugin c cpp.png C/C++ Required ms-vscode.cpptools
Vscode plugin cortex-debug.png Cortex-Debug Required marus25.cortex-debug
Vscode plugin CMake Syntax Highlighting.png CMake Syntax Highlighting Optional twxs.cmake
Vscode plugin ARM Assembly highlighting.png ARM Assembly highlighting Optional dan-c-underwood.arm
Vscode plugin Linker Script.png Language support for GNU linker script Optional Zixuan Wang


This plugin offers many features to simplify editing of C/C++ code, including Syntax highlighting, Intellisense (finding definitions of symbols), auto-completion of keywords and identifier names, and marking syntax errors while typing.


This plugin adds support for debugging ARM executable through a GDB Server.


CMake Syntax Highlighting


Syntax highlighting for ARM assembly code

Linker Script

Syntax highlighting for linker scripts

2. ARM Build Tools

GNU ARM Embedded Toolchain

GNU ARM Embedded Toolchain is the C/C++ compiler and linker along with additional tools. It is used to turn your source code into a binary executable.


CMake is a tool which turns compiler-independent project definitions into compiler-specific project definitions. CMake converts these into makefiles that can be processed by the GNU ARM Embedded Toolchain.

3. Debugger Tools


OpenOCD is an open-source debugger, supporting a wide variety of JTAG hardware interfaces. For customers using a JTAG adapter other than the J-Link, this probably is the matching software. The package contains a GDB server, which connects to VSCode on one side, and to the J-Link JTAG/SWD hardware on the other side.

Chocolatey (Software Management For Windows)

  • The Windows versions of required software will be installed using Chocolately
  • Install/Setup Chocolatey on windows 10
  • Search for available packages
  • Always run Chocolatey (choco) under Power Shell (as an administrator)

4. Install VSCode



> choco install vscode

5. Installing Visual Studio Code Plugins

The easiest way is to install them from the command prompt inside the IDE:

code --install-extension ms-vscode.cpptools
code --install-extension marus25.cortex-debug
code --install-extension twxs.cmake
code --install-extension dan-c-underwood.arm
code --install-extension zixuanwang.linkerscript

Or we can use in the IDE the menu View > Extensions.

  1. Open VSCode
  2. Select View → Extensions
    This will show the Extension sidebar
  3. In the search box above the Extension sidebar, type the Code name from the below table (without the angle brackets) or another reasonable search term
  4. Click on the little green Install button which appears next to the found plugin.

Below is our installed extensions (menu File > Preferences > Extensions):

Vscode armdev plugins.png

6. Install Build Tools


GNU Arm Embedded Toolchain

  • Please follow this link to install GNU ARM Embedded Toolchain
  • OR, we can install using apt
$ sudo apt update
$ sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi

Make and CMake

$ sudo apt update
$ sudo apt install make cmake


GNU Arm Embedded Toolchain

> choco install gcc-arm-embedded


> choco install make


> choco install cmake

7. Install Debugging Tools



$ sudo apt update
$ sudo apt install openocd


> choco install openocd

Sample Project

You can download sample project from here