mirror of
https://github.com/apache/nuttx.git
synced 2026-05-26 10:46:28 +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
|
||||
:literal:
|
||||
.. tags:: experimental, arch:risc-v, chip:k210, vendor:sipeed
|
||||
|
||||
.. include:: README-qemu.txt
|
||||
:literal:
|
||||
.. figure:: maix-bit.png
|
||||
: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