DesignWare(R) ARC(R) HS Development Kit

Overview

The DesignWare(R) ARC(R) HS Development Kit is a ready-to-use platform for rapid software development on the ARC HS3x family of processors. It supports single- and multi-core ARC HS34, HS36 and HS38 processors and offers a wide range of interfaces including Ethernet, WiFi, Bluetooth, USB, SDIO, I2C, SPI, UART, I2S, ADC, PWM and GPIO. A Vivante GPU is also contained in the ARC Development System SoC. This allows developers to build and debug complex software on a comprehensive hardware platform

DesignWare(R) ARC(R) HS Development Kit (synopsys.com)

For details about the board, see: ARC HS Development Kit (IoTDK)

Hardware

For hardware feature details, refer to : Designware HS Development Kit website.

Programming and Debugging

Required Hardware and Software

To use Zephyr RTOS applications on the HS Development Kit board, a few additional pieces of hardware are required.

  • A micro USB cable provides USB-JTAG debug and USB-UART communication to the board
  • A universal switching power adaptor (110-240V AC to 12V DC), provided in the package, provides power to the board.
  • The Zephyr SDK
  • Terminal emulator software for use with the USB-UART. Suggestion: Putty Website.
  • (optional) A collection of Pmods, Arduino modules, or Mikro modules. See Digilent Pmod Modules or develop your custom interfaces to attach to the Pmod connector.

Set up the ARC HS Development Kit

To run Zephyr application on IoT Development Kit, you need to set up the board correctly.

  • Connect the digilent USB cable from your host to the board.
  • Connect the 12V DC power supply to your board

Set up Zephyr Software

Building Sample Applications

You can try many of the sample applications and demos. We’ll use Hello World, found in samples/hello_world as an example.

Configuring

You may need to write a prj_arc.conf file if the sample doesn’t have one. Next, you can use the menuconfig rule to configure the target. By specifying hsdk as the board configuration, you can select the ARC HS Development Kit board support for Zephyr.

Using west:

# From the root of the zephyr repository
west build -t menuconfig

Using CMake and ninja:

# From the root of the zephyr repository
# Use cmake to configure a Ninja-based buildsystem:
cmake -B build -GNinja -DBOARD=hsdk samples/hello_world

# Now run ninja on the generated build system:
ninja -C build menuconfig

Building

You can build an application in the usual way. Refer to Build an Application for more details. Here is an example for Hello World.

Using west:

# From the root of the zephyr repository
west build -b hsdk samples/hello_world

Using CMake and ninja:

# From the root of the zephyr repository
# If you already ran cmake with -Bbuild, you can skip this step and run ninja directly.
cmake -B build -GNinja -DBOARD=hsdk samples/hello_world

# Now run ninja on the generated build system:
ninja -C build

Connecting Serial Output

In the default configuration, Zephyr’s HS Development Kit images support serial output via the USB-UART on the board. To enable serial output:

  • Open a serial port emulator (i.e. on Linux minicom, putty, screen, etc)
  • Specify the tty driver name, for example, on Linux this may be /dev/ttyUSB0
  • Set the communication settings to:
Parameter Value
Baud: 115200
Data: 8 bits
Parity: None
Stopbits: 1

Debugging

Using the latest version of Zephyr SDK(>=0.10), you can debug and flash (run) HS Development Kit directly.

One option is to build and debug the application using the usual Zephyr build system commands.

Using west:

west debug

Using CMake and ninja:

# Use cmake to configure a Ninja-based buildsystem:
cmake -B build -GNinja -DBOARD=hsdk <my app>

# Now run ninja on the generated build system:
ninja -C build debug

At this point you can do your normal debug session. Set breakpoints and then c to continue into the program.

The other option is to launch a debug server, as follows.

Using west:

west debugserver

Using CMake and ninja:

# Use cmake to configure a Ninja-based buildsystem:
cmake -B build -GNinja -DBOARD=hsdk <my app>

# Now run ninja on the generated build system:
ninja -C build debugserver

Then connect to the debug server at the HS Development Kit from a second console, from the build directory containing the output zephyr.elf.

$ cd <my app>
$ $ZEPHYR_SDK_INSTALL_DIR/arc-zephyr-elf/arc-zephyr-elf-gdb zephyr.elf
(gdb) target remote localhost:3333
(gdb) load
(gdb) b main
(gdb) c

Flashing

If you just want to download the application to the HS Development Kit’s DDR and run, you can do so in the usual way.

Using west:

west flash

Using CMake and ninja:

# Use cmake to configure a Ninja-based buildsystem:
cmake -B build -GNinja -DBOARD=hsdk <my app>

# Now run ninja on the generated build system:
ninja -C build flash

This command still uses openocd and gdb to load the application elf file to HS Development Kit, but it will load the application and immediately run. If power is removed, the application will be lost since it wasn’t written to flash.

Most of the time you will not be flashing your program but will instead debug it using openocd and gdb. The program can be download via the USB cable into the code and data memories.

The HS Development Kit also supports flashing the Zephyr application with the U-Boot bootloader, a powerful and flexible tool for loading an executable from different sources and running it on the target platform.

The U-Boot implementation for the HS Development Kit was further extended with additional functionality that allows users to better manage the broad configurability of the HS Development Kit

When you are ready to deploy the program so that it boots up automatically on reset or power-up, you can follow the steps to place the program on SD card.

For details, see: Uboot-HSDK-Command-Reference

Release Notes

References