ARC HS Development Kit¶
The ARC HS Development Kit (HSDK) Platform supports the ARC HS34, HS36 and HS38x4 quad core processors running at 1GHz. The ARC HSDK features 256 kByte of on-chip SRAM and 4 GByte of DDR3-SDRAM. The software available from Synopsys for the ARC HSDK includes pre-built SMP Linux image (plus the U-boot bootloader) and the embARC OSP distribution for embedded systems. embARC OSP source code includes bare metal and FreeRTOS device drivers and example applications. Code development is made easy using the MetaWare Development Toolkit, MetaWare Lite tools or the ARC GNU Tool Chain.
See also this URL for details about the board: DesignWare ARC HS Development Kit (HSDK)
The ARC HS Development Kit features the following components:
ARC HS SoC:
- Quad Core HS38x4 Processor
- DDR3 memory controller
- USB, Ethernet, SDIO
- DesignWare APB Peripherals (consult HSDK documentation for complete details)
- Memory / Storage:
- DDR3-1333 (4 GB)
- 2x SPI Flash (2 MB)
- I2C EEPROM (3 KB)
- USB2 (2x)
- Ethernet (10/100/1000)
- Audio - line in/out
- USB Data port (JTAG/UART)
- Micro-SD Card
- WIFI/BT module
- ADC (6 channels)
- RTT Nexus and JTAG connectors
- AXI Tunnel (32-bit, 150 MHz)
- Arduino - Interface headers (UNO R3 compatible)
- mikroBUS headers
- PMOD Interfaces (3x), PMOD A and PMOD B (12 pins), PMOD C (6 pins)
The ARC HS SoC provides the following main features:
- Flexible, customizable IC architecture
- Configurable / programmable boot scenarios
- Configurable / programmable memory map
- DesignWare HS38x4 quad-core @ 1GHz
- 64kByte instruction cache
- 64kByte data cache
- 256kByte ICCM (2 cores)
- 256kByte DCCM (2 cores)
- Memory Management Unit
- Physical Address Extension (PAE)
- 512kByte system level cache
- Support for IO coherency
- Support for Real-Time Trace
- Vivante GC7000 NanoUltra3T GPU Processing Unit @ 400Mhz
- Flexible clock generation
- system clocks
- 33MHz system reference clock input
- PLL for DDR clock
- PLL for TUNNEL clock
- PLL for ARC clock
- PLL for all other system clocks
- audio reference clock input (24.576 MHz)
- integer divider(s) for audio serial clock
- system clocks
- 256kByte SRAM
- DDR3 interface
- max speed grade DDR-1600 (800MHz)
- data width 32 bits
- max row address width 16 bits
- max bank address width 3 bits
- max 2 memory ranks
- max supported DDR memory size is 4GByte
- I2S TX / RX interface
- USB 2.0 Host interface
- SDIO interfaces
- 10/100/1000Mbps Ethernet RGMII interface
- AXI tunnel interface
- max freq 150MHz
- max data throughput 600MByte/s
- UART interfaces
- I2C interfaces
- SPI interfaces
- PWM interfaces
- JTAG interface
To bring your application context around the ARC HSDK, the following peripheral module standards are supported:
- Digilent PMOD™ (3x)
- MikroBUS (1x)
- Arduino (1x)
For the details of extension interfaces, please go for the user manual/datasheet of HSDK. Users can change the interface configuration through the pinmux API in
In the examples of embARC OSP, PMOD_B is used to connected SPI devices with PMOD interface, e.g. PMOD WiFI, PMOD_A is used to connected I2C devices with PMOD interface, e.g. PMOD ADC.
Programming and Debugging¶
Required Hardware and Software¶
To use embARC OSP applications on the IoTDK board, the following items are required
- USB Cable
- The universal switching power adaptor (110-240V AC to 12V DC), can be used to power the board
- Software Requirement.
- (optional) A collection of PMODs and Arduino modules.
Set up the HSDK¶
- The HSDK boot switches are shown below. There are multiple configurations, such as boot mirror, boot image location, boot start mode, core selection and multi-core mode. For example, the configurations in the following picture are boot image location: 0x1 (internal ROM), boot start mode: generate cpu_start autonomously after reset, core selection: 0x0 (HS38X4_0), and multi-core mode: 0x0 (signal-core). For complete HSDK information, see the HS Development Kit User’s Guide provided with the HSDK.
- Connect the USB cable to the HSDK mini-USB connector and to the USB port on your development host. If using the Ashling Opella-XD for ARC Debug Probe or Digilent JTAG-HS2 Probe, connect it to the right connector. Connect the power supply to the board and to the power outlet.
You can use any terminal emulation program to view UART output from the HSDK. The USB connection provides both the debug channel and RS232 transport. Use Tera Term in Windows as an example.
Determine which COM port the HSDK is using.
- Open the Windows Control Panel and select Device Manager in a Windows environment.
- Expand Ports (COM and LPT) in the list. Select USB Serial Port (COM x) and Note the COM port number for the ARC board.
Configure serial terminal connection.
- Launch Tera Term. Select Serial in Setup. Choose the appropriate COM port string in Port and 115200 in Baud rate, 8 bits data, 1 stop bit, no parity (115200-8-N-1). Click OK to set the port configuration.
- You can optionally save your settings so they can be easily retrieved.
- Select New connection in File and choose the appropriate COM in Serial.
Test serial output with HSDK.
- Press the “RESET” button on the HSDK board to reset the board.
- Confirm that you can see the header and self-test message printed to the console.
******************************** ** Synopsys, Inc. ** ** ARC HS Development Kit ** ******************************** ** IC revision: Rev 1.0 Bootloader revision: Jun 12 2016, 08:54:06 Bootloader location: 0x1 (internal ROM) Bootloader aux: 0x9 (sg15E,4Gb,x8,2r) Bootloader speedmode: Slow Bootloader multicore: 0x0 (Single-core)
(Optional) Connect the PmodWiFi and PmodRF2 to the HSDK as shown.
Take Blinky as an example
cd embarc_osp\example\baremetal\blinky # for ARC GNU toolchain make TOOLCHAIN=gnu BOARD=hsdk # for MWDT toolchain make TOOLCHAIN=mw BOARD=hsdk
cd embarc_osp\example\baremetal\blinky # for ARC GNU toolchain make TOOLCHAIN=gnu BOARD=hsdk run # for MWDT toolchain make TOOLCHAIN=mw BOARD=hsdk run
cd embarc_osp\example\baremetal\blinky # for ARC GNU toolchain make TOOLCHAIN=gnu BOARD=hsdk gui # for MWDT toolchain make TOOLCHAIN=mw BOARD=hsdk gui
The related introduction is working in progress.