36
39

More than 3 years have passed since last update.

RISC-Vエミュレータ上でリアルタイムOSを動かす(QEMU + NuttX)

Last updated at Posted at 2020-01-05

QEMU上でNuttXというリアルタイムOSを動かすまでの手順について紹介します。

NuttXとは

NuttX とは、POSIXライクなインターフェイスを持つリアルタイムOSです。
小さなLinux(Tiny Linux)のようなOSです。
ドローンのプロジェクトやSonyのオーディオ製品123などに使われています。

準備

READMEを参考にしました。
2020年1月時点での手順です。WSL+Ubuntu 18.04上で確認しました。
ビルドなどで足りないパッケージがあれば、必要に応じてapt install などで追加してください。

QEMUのインストール

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

NuttXのソースコード取得

$ mkdir nuttx
$ cd nuttx/
$ git clone https://bitbucket.org/nuttx/nuttx.git
$ git clone https://bitbucket.org/nuttx/apps.git

kconfig-frontends のインストール

$ git clone https://bitbucket.org/nuttx/tools.git
$ cd tools/kconfig-frontends/
$ ./configure
$ make
$ sudo make install
$ sudo /sbin/ldconfig

toolchainのビルド

時間がかかります

$ git clone --recursive https://github.com/riscv/riscv-gnu-toolchain
$ cd riscv-gnu-toolchain/
$ ./configure --prefix=/opt/riscv --enable-multilib
$ sudo make
$ export PATH=$PATH:/opt/riscv/bin

NuttXのビルド

nuttxやappsをgit cloneしたディレクトリから、

$ cd nuttx/
$ ./tools/configure.sh hifive1-revb:nsh
$ make menuconfig
$ make

make menuconfig では『FE310 Chip Selection』で『FE310 QEMU』を選んでSave。
fe310_qemu.png

起動と終了

起動

$ qemu-system-riscv32 -nographic -machine sifive_e -kernel ./nuttx

nsh_riscv.png

終了
Ctrl+aのあとにx

36
39
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36
39