nuttx/boards/risc-v/gap8/gapuino
..
configs/nsh
include
scripts
src
Kconfig
README.txt

README
======

gapuino is an evaluation board for GAP8, a 1+8-core DSP-like RISC-V
MCU. GAP8 features a RI5CY core called Fabric Controller(FC), and a
cluster of 8 RI5CY cores that runs at a bit slower speed. GAP8 is an
implementation of the opensource PULP platform, a Parallel-Ultra-Low-
Power design.

The port is currently very minimal, though additional support may be
added in the future to address more of the board peripherals.

  Supported:
  - USB UART (console port)
  - uDMA on SOC domain
  - FLL clock scaling

  Not supported:
  - SPI, I2C, I2S, CPI, LVDS, Hyper-bus on the uDMA subsystem
  - the sensor board
  - the 8-core cluster
  - the Hardware convolution engine

See also:
gapuino board and the sensor board:
https://gwt-website-files.s3.amazonaws.com/gapuino_um.pdf
https://gwt-website-files.s3.amazonaws.com/gapuino_multisensor_um.pdf
GAP8 datasheet:
https://gwt-website-files.s3.amazonaws.com/gap8_datasheet.pdf

Contents
========

  - Environment Setup
  - Configurations
  - Execute

Environment Setup
=================
  First, setup the gap_sdk from GreenwavesTechnologies' github repo.
  Follow the README to setup the toolchain and environment.
  https://github.com/GreenWaves-Technologies/gap_sdk/

Configurations
==============
  Each gapuino configuration is maintained in a sub-directory and can
  be selected as follow:

    tools/configure.sh gapuino:<subdir>

  Where <subdir> is one of the following:

    nsh
    ---
    This is an NSH example that uses the UART connected to FT2232 as
    the console. Default UART settings are 115200, 8N1.

Execute
=======
  You may download the ELF to the board by `plpbridge` in gap_sdk.
  Remember to first `cd` to the gap_sdk/ and `source sourceme.sh`, so
  that you have the $GAP_SDK_HOME environment variable.

  Use the following command to download and run the ELF through JTAG:

    $GAP_SDK_HOME/install/workstation/bin/plpbridge \
    --cable=ftdi@digilent --boot-mode=jtag --chip=gap \
    --binary=nuttx \
    load ioloop reqloop start wait

  As for debugging, the following command download the ELF and opens
  a gdbserver on port 1234:

     $GAP_SDK_HOME/install/workstation/bin/plpbridge \
    --cable=ftdi@digilent --boot-mode=jtag --chip=gap \
    --binary=nuttx \
    load ioloop gdb wait

  And then launch the gdb on another terminal:

    riscv32-unknown-elf-gdb nuttx
    ...
    (gdb) target remote :1234
    Remote debugging using :1234
    IRQ_U_Vector_Base () at chip/startup_gap8.S:293
    293             j reset_handler       /* 32 */
    (gdb)

  And then enjoy yourself debugging with the CLI gdb :-)