Skip to content
  1. Download and install toolchain

$ curl https://static.dev.sifive.com/dev-tools/riscv64-unknown-elf-gcc-8.3.0-2019.08.0-x86\_64-linux-ubuntu14.tar.gz

  1. Build and install qemu

$ git clone https://github.com/qemu/qemu $ cd qemu $ ./configure --target-list=riscv64-softmmu $ make $ sudo make install

  1. Modify defconfig

--- a/boards/risc-v/k210/maix-bit/configs/nsh/defconfig +++ b/boards/risc-v/k210/maix-bit/configs/nsh/defconfig @@ -25,6 +25,7 @@ CONFIG_EXAMPLES_HELLO=y CONFIG_FS_PROCFS=y CONFIG_IDLETHREAD_STACKSIZE=2048 CONFIG_INTELHEX_BINARY=y +CONFIG_K210_WITH_QEMU=y CONFIG_LIBC_PERROR_STDOUT=y CONFIG_LIBC_STRERROR=y

  1. Configure and build NuttX

$ mkdir ./nuttx; cd ./nuttx $ git clone https://github.com/apache/nuttx.git nuttx $ git clone https://github.com/apache/nuttx-apps.git apps $ cd nuttx $ make distclean $ ./tools/configure.sh maix-bit:nsh $ make V=1

  1. Run the nuttx with qemu

$ 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'

  1. TODO

Support FPU Support RISC-V User mode