Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
40
Help us understand the problem. What is going on with this article?

More than 1 year has passed since last update.

@__sgy__

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

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

40
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
40
Help us understand the problem. What is going on with this article?