2020-01-10 15:04:41 +01:00
|
|
|
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
|
|
|
|
|
|
|
|
2. Build and install qemu
|
|
|
|
|
|
|
|
$ git clone https://github.com/qemu/qemu
|
|
|
|
$ cd qemu
|
|
|
|
$ ./configure --target-list=riscv64-softmmu
|
|
|
|
$ make
|
|
|
|
$ sudo make install
|
|
|
|
|
|
|
|
3. 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
|
|
|
|
|
|
|
|
4. Configure and build NuttX
|
|
|
|
|
|
|
|
$ mkdir ./nuttx; cd ./nuttx
|
2022-06-05 08:04:46 +02:00
|
|
|
$ git clone https://github.com/apache/incubator-nuttx.git nuttx
|
|
|
|
$ git clone https://github.com/apache/incubator-nuttx-apps.git apps
|
2020-01-10 15:04:41 +01:00
|
|
|
$ cd nuttx
|
|
|
|
$ make distclean
|
|
|
|
$ ./tools/configure.sh maix-bit:nsh
|
|
|
|
$ make V=1
|
|
|
|
|
|
|
|
5. Run the nuttx with qemu
|
|
|
|
|
|
|
|
$ qemu-system-riscv64 -nographic -machine sifive_u -bios ./nuttx
|
|
|
|
|
2020-04-22 01:46:29 +02:00
|
|
|
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
|
2022-08-26 11:07:31 +02:00
|
|
|
$ riscv64-unknown-elf-gdb -ex 'target extended-remote:1234' -ex 'load nuttx_user.elf' -ex 'load nuttx' -ex 'c'
|
2020-04-22 01:46:29 +02:00
|
|
|
|
2020-01-10 15:04:41 +01:00
|
|
|
6. TODO
|
|
|
|
|
|
|
|
Support FPU
|
|
|
|
Support RISC-V User mode
|