mirror of
https://github.com/apache/nuttx.git
synced 2026-05-27 03:05:40 +08:00
docs/platforms/risc-v/k210/boards/maix-bit: Migrate README.txt
Migrated legacy README.txt documentation to RST format following the standard board documentation template. Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
This commit is contained in:
@@ -1,47 +0,0 @@
|
|||||||
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
|
|
||||||
$ 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
|
|
||||||
|
|
||||||
5. 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'
|
|
||||||
|
|
||||||
6. TODO
|
|
||||||
|
|
||||||
Support FPU
|
|
||||||
Support RISC-V User mode
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
1. 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
|
|
||||||
|
|
||||||
2. Build openocd-k210
|
|
||||||
|
|
||||||
$ git clone https://github.com/kendryte/openocd-kendryte
|
|
||||||
$ cd openocd-kendryte
|
|
||||||
$ ./bootstrap & ./configure & make
|
|
||||||
|
|
||||||
3. 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
|
|
||||||
|
|
||||||
4. Download and run the 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
|
|
||||||
|
|
||||||
5. 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
|
|
||||||
|
|
||||||
6. TODO
|
|
||||||
|
|
||||||
Support peripherals such as GPIO/SPI/I2C/...
|
|
||||||
Support FPU
|
|
||||||
Support RISC-V U-mode including memory protection
|
|
||||||
@@ -1,9 +1,140 @@
|
|||||||
========
|
========
|
||||||
maix-bit
|
Maix Bit
|
||||||
========
|
========
|
||||||
|
|
||||||
.. include:: README.txt
|
.. tags:: experimental, arch:risc-v, chip:k210, vendor:sipeed
|
||||||
:literal:
|
|
||||||
|
|
||||||
.. include:: README-qemu.txt
|
.. figure:: maix-bit.png
|
||||||
:literal:
|
:figwidth: 50%
|
||||||
|
:align: center
|
||||||
|
:alt: The Maix Bit development board.
|
||||||
|
|
||||||
|
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
|
||||||
|
============
|
||||||
|
|
||||||
|
1. Download and install toolchain and openocd-k210
|
||||||
|
|
||||||
|
.. code:: console
|
||||||
|
|
||||||
|
$ 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
|
||||||
|
|
||||||
|
2. Build openocd-k210
|
||||||
|
|
||||||
|
.. code:: console
|
||||||
|
|
||||||
|
$ git clone https://github.com/kendryte/openocd-kendryte
|
||||||
|
$ cd openocd-kendryte
|
||||||
|
$ ./bootstrap & ./configure & make
|
||||||
|
|
||||||
|
|
||||||
|
Flashing
|
||||||
|
========
|
||||||
|
|
||||||
|
Download and run NuttX from SRAM (not SPI-Flash):
|
||||||
|
|
||||||
|
.. code:: console
|
||||||
|
|
||||||
|
$ 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:
|
||||||
|
|
||||||
|
.. code:: console
|
||||||
|
|
||||||
|
$ 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:
|
||||||
|
|
||||||
|
.. code:: console
|
||||||
|
|
||||||
|
$ 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:
|
||||||
|
|
||||||
|
.. code:: console
|
||||||
|
|
||||||
|
$ 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``.
|
||||||
|
|
||||||
|
.. code:: console
|
||||||
|
|
||||||
|
$ 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:
|
||||||
|
|
||||||
|
.. code:: console
|
||||||
|
|
||||||
|
$ ./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.
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 510 KiB |
Reference in New Issue
Block a user