3
2

More than 3 years have passed since last update.

RISC-V freedom-e-sdkをqemuで動かすためのメモ

Last updated at Posted at 2019-11-11

背景

そろそろRISC-Vを動かしてみようと思い、手軽なqemuを使ってみることにしました。プロセッサの仕様も正しく理解できていないので、まずは一番シンプルそうな本家のfreedom-e-sdkから動かしてみます。

環境

OS: Ubuntu18.04 x86_64 on VMware Fusion 11.5.0 on macOS 10.15.1

セットアップ

gitなどのツールはセットアップ済みと仮定します。

$ git clone --recursive https://github.com/sifive/freedom-e-sdk.git

ツールチェーンは、https://www.sifive.com/boards からダウンロードします。

$ curl https://static.dev.sifive.com/dev-tools/riscv64-unknown-elf-gcc-8.3.0-2019.08.0-x86_64-linux-ubuntu14.tar.gz

ツールチェーンを展開して、パスを通しておきます。

qemuも https://www.sifive.com/boards からダウンロードできますが、自分でビルドしても構いません。(2019/11/11時点のqemuのmasterは問題なく動作しました)

ビルド

$ cd freedom-e-sdk
$ make
...
riscv64-unknown-elf-gcc ... -march=rv32imac -mabi=ilp32 ...

とすると、software/hello/debug/hello.elf が出来上がります。
補足ですが、make helpとすると、オプションがでます。どうやらデフォルトのTARGETはfreedom-e310-arty (DigilentのFPGAボードでfreedom-e310コアを動かすためのターゲット)のようです。また注目すべきは、toolchainは、riscv64-unknown-elf-gccとなっており、64bit CPUまで対応可能なコンパイラーを使っていますが、freedom-e310が32bitなので、-march, -mabiを指定しているようです。

qemuで実行

$ qemu-system-riscv32 -nographic -machine sifive_e -kernel ./software/hello/debug/hello.elf 
Hello, World!

とすれば、先ほどビルドした hello.elf が実行できます。

3
2
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
3
2