Maix Bit
The Maix Bit development board.
The Maix Bit is a RISC-V AI IoT development board.
Features
K210 RISC-V AI Chip
Dual-core
Independent FPU
64-bit
8MB on-chip SRAM
Double precision FPU with multiplication, division and square root
Warning
There is currently no support for the FPU, or RISC-V User mode. Peripherals such as GPIO, SPI and I2C are also currently unsupported.
Todo
If you are intersted in using this board, please consider contributing implementations for the above missing features.
Installation
Download and install toolchain and openocd-k210
$ curl https://static.dev.sifive.com/dev-tools/riscv64-unknown-elf-gcc-8.3.0-2019.08.0-x86_64-linux-ubuntu14.tar.gz $ export PATH=$PATH:/$TOOL_CHAIN_PATH/bin
Build openocd-k210
$ git clone https://github.com/kendryte/openocd-kendryte $ cd openocd-kendryte $ ./bootstrap & ./configure & make
Flashing
Download and run NuttX from SRAM (not SPI-Flash):
$ picocom -b 115200 /dev/ttyUSB0
$ sudo ./src/openocd -s ./tcl -f ./tcl/kendryte.cfg -m 0
$ riscv64-unknown-elf-gdb ./nuttx
(gdb) target extended-remote :3333
(gdb) load nuttx
(gdb) c
Write nuttx.bin to SPI-Flash:
$ pip3 install kflash
$ kflash -p /dev/ttyUSB0 -b 1500000 ./nuttx/nuttx.bin
Note
The kflash_gui is not recommended because it’s unstable.
QEMU Process
In order to run this board’s version of NuttX on QEMU, make the following adjustments:
QEMU Installation
Installing and building QEMU can be done with:
$ git clone https://github.com/qemu/qemu
$ cd qemu
$ ./configure --target-list=riscv64-softmmu
$ make
$ sudo make install
Building NuttX for QEMU
Building NuttX follows the same process, but you will need to modify your chosen
configuration to include the option CONFIG_K210_WITH_QEMU=y.
Running on QEMU
Run the following:
$ qemu-system-riscv64 -nographic -machine sifive_u -bios ./nuttx
Note
To run Nuttx for kostest, gdb needs to be used to load both
nuttx_user.elf and nuttx.
$ qemu-system-riscv64 -nographic -machine sifive_u -s -S
$ riscv64-unknown-elf-gdb -ex 'target extended-remote:1234' -ex 'load nuttx_user.elf' -ex 'load nuttx' -ex 'c'
Configurations
Configurations can be selected using the following configure tool command:
$ ./tools/configure.sh maix-bit:<config>
Where <config> can be replaced by the name of any configuration listed
below.
nsh
A simple configuration with NSH running.