MISC-TN-016: Visual Studio Code and SSH remote development on Mito8M SoM

From DAVE Developer's Wiki
Jump to: navigation, search
Info Box
DMI-Mito-top.png Applies to MITO 8M
SBC-AXEL-02.png Applies to SBC AXEL
1200px-Visual Studio Code 1.35 icon.svg.png Applies to Visual Studio Code
Warning-icon.png This Technical Note was validated against specific versions of hardware and software. What is described here may not work with other versions. Warning-icon.png

History[edit | edit source]

Version Date Notes
1.0.0 September 2020 First public release

Introduction[edit | edit source]

Mito8M is the first DAVE Embedded Systems' product based on a core implementing the ARMv8-A architecture. Specifically, it is built upon the NXP i.MX8M system-on-chip (SoC).

This Technical Note (TN) shows how this platform can be set up to enable SSH remote development with Visual Studio Code (VSC for short).

Testbed[edit | edit source]

Host[edit | edit source]

Regarding the development host, Ubuntu 18.04 distribution was used.

After installing Visual Studio Code Insiders

Target[edit | edit source]

For convenience, an Armbian Buster distribution was used on the target. As such, the software configuration is like the one described in this article.

In order to enable the connection with VSC, it is mandatory to set up the SSH server to allow passwordless login for the user(s) utilized for the remote development sessions. In this example, the user armbian will be used. For more details on this, please see for instance this page.

Testing[edit | edit source]

First of all, the connection with the target has to be established (in this case, is the IP address assigned to Mito8M):

Establishing the connection with the target

In the "Output" box, it is possible to see what is going on during the connection process:

Connection process

Once the connection is working, it is also possible to get a target's terminal inside VSC:

Target's terminal

When connecting to the target for the first time, VSC will download to the target the VS Code Server, which is required for the remote development sessions.

Of course, one can navigate the target's directories directly as well:

Navigating target's directory

The following screenshot shows a remote debugging session of a simple Python program that is stored on the target's file system:

Remote debugging session of a simple Python program

Useful links[edit | edit source]