Skip to content

Latest commit

 

History

History
83 lines (50 loc) · 6.86 KB

Additional-materials.md

File metadata and controls

83 lines (50 loc) · 6.86 KB

Additional materials

Content

  1. Setting up an existing project for remote debugging
  2. Video instructions for setting up extension and remote device
  3. Third-party bash-scripts to install packages/libraries
  4. GPIO pin control
  5. Manage Device Tree overlays
  6. How the extension works
  7. About Armbian

Setting up an existing project for remote debugging

  1. Launch configuration for remote debugging can be added to projects outside of creating the project itself from an extension template. To add Launch, you need to open the project and click on the Add Launch button:

.NET FastIoT Create launch

  1. Select a device for remote debugging:

.NET FastIoT Create launch

  1. Select a project template from which Launch and Tasks will be taken:

.NET FastIoT Create launch

  1. Select a project:

.NET FastIoT Create launch

  1. Created a Launch configuration to launch the application:

.NET FastIoT Create launch

  1. Next, go to the Activity Bar Run and Debug, select the added Launch and run the application:

.NET FastIoT Create launch

Video instructions for configuring the extension and remote device

To simplify the configuration of the extension and the remote device, video clips (YouTube) were created:

  1. Step 1. Configuring SSH access;
  2. Step 2. Adding a device;
  3. Step 3. Installing packages;
  4. Step 4. Creating a .NET console application and remote debugging;
  5. Step 5. Using GPIO. Blink.

Third party bash scripts to install packages/libraries

.NET SDK, .NET Runtimes, .NET Debugger (vsdbg), Libgpiod, Docker are downloaded from the official websites of package developers, with the exception of the Libgpiod library. The script for installing this library is downloaded from the GitHub resource - devdotnetorg/docker-libgpiod. Next, the downloaded script downloads the source code of the library from the official Libgpiod repository and compiles the library.

GPIO pin control

GPIO (general-purpose input/output) is a general purpose input/output interface. GPIOs are connected directly to the "processor" SoC (System-on-a-Chip - System on a chip). Most single board computers, in addition to the usual bidirectional Input / Output ports, have one or more interfaces: UART, SPI, I²C / TWI, PWM (PWM), but do not have ADC (ADC). GPIO - ports can usually be configured for input or output (Input / Output), the default state is usually INPUT. The following are connected to the GPIO ports: LEDs, buttons, relays, temperature and other sensors, various peripheral devices.

There are several ways to access GPIO programming:

  • Via file device (sysfs) GPIO;
  • Through direct access to the registers of the chip;
  • Using ready-made libraries (libgpiod).

The extension provides for working with GPIO using the Libgpiod library. What is GPIO and how to manage pins using the Libgpiod library in publications:

Manage Device Tree overlays

Device Tree overlays are used to enable/disable devices such as I2C, SPI, PWM, etc. Remote loading of *.DTS files and enabling/disabling "layers" is available. More details in the publication Working with GPIO. Part 2. Device Tree overlays. Working with DTS is only supported in the Armbian distribution. To support other distributions, you need to implement the adapter using the interface IDtoAdapter.ts . An example implementation for Armbian is IoTDTOArmbianAdapter.ts.

How the extension works

The principle of operation of the extension and the internal mechanism are disclosed in publications:

About the Armbian

Armbian is the most popular distribution for ARM and RISC-V single board computers. More information about Armbian can be found on the page Armbian - Linux distribution for development boards on ARM.