Search by Tags

Developing M4 Applications Using Visual Studio Code

 
Applicable for

Article updated at 05 May 2022
Compare with Revision




Visual Studio Code can be used to edit the source code, build the application and finally debug it. Toradex provides the necessary configuration files and instructions to setup your system.

Required Software Components

In contrast to fully integrated IDEs, setting up Visual Studio Code (short. VSCode) requires you 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 (well, almost: VSCode must be installed before VSCode plugins can be installed).
Understanding the purpose of individual components helps to debug potential problems and understand the behavior of the system. Therefore I want to first give an overview over these parts.

1. Visual Studio Code and Plugins

Visual Studio Code

You 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

C/C++:
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.

Cortex-Debug:
This plugin adds support for debugging ARM executables through a GDB Server.

Optional Plugins

CMake:
Syntax highlighting for CMakeLists.txt

ARM:
Syntax highlighting for ARM assembly code

Linker Script:
Syntax highlighting for linker scripts

2. Arm build tools

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

CMake:
CMake is a tool which turns compiler-independent project definitions into compiler-specific project definitions.
NXP provides such independent project definitions in CMakeLists.txt files. CMake converts these into makefiles that can be processed by the GNU Arm Embedded Toolchain.

3. Debugger Tools

Segger J-Link: (for J-Link hardware debugger only)
This software package contains the J-Link GDB server, which connects to VSCode on one side, and to the J-Link JTAG hardware on the other side.

OpenOCD: (for generic hardware debugger)
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 hardware on the other side.

Installation Steps

Click the tab below to select whether you develop on a Windows or Linux host machine.

Installation Steps for Windows 10 machines

Visual Studio Code is still undergoing significant development. Therefore I will point out the version used at the time when these instructions were written.

  • Instructions were written in August 2019
  • Tested on a Windows 10 Build 1903

1. Installing Visual Studio Code and Plugins

Details

2. Installing Build Tools

Details

3. Installing Debugging Tools

Details

Installation Steps for Linux machines

Visual Studio Code is still undergoing significant development. Therefore I will point out the version used at the time when these instructions were written.

  • Instructions were written in August 2019
  • Tested on Ubuntu 18.04.3 (running in a VirtualBox VM on a Windows 10 host)

1. Installing Visual Studio Code and Plugins

Details

2. Installing Build Tools

Details

3. Installing Debugging Tools

Details