[RISC-V技術ブログ連載第1回] 開発ボードを使ったSiFive RISC-V ソフトウェア開発環境のご紹介

SiFive技術ブログ・アイキャッチ画像 RISC-V

1.はじめに

 このところ半導体業界ではRISC-Vに関する話題に非常に注目が集まっています。
RISC-Vとは、新たに規定されたオープンな命令セットアーキテクチャ(Instruction. Set Architecture: ISA)仕様のことです。このISA仕様策定に中心的な役割を担いつつ、ISA仕様に沿った有償のCoreIPを提供している会社がSiFive社です。
SiFive社はCoreIPの提供だけでなく、早期に開発や評価を行えるよう、開発ボードの提供も行っています。

 本ブログではSiFive RISC-Vに関する情報をお伝えしていきます。まずはお客様からのお問合せが非常に多い、開発ボードのご紹介と、開発ボードを使ったソフトウェア開発環境についてご紹介していきます。
 連載第1回は、SiFiveが提供する開発ボードを使って、手早くお手軽にLinuxを起動する方法についてご説明します。

2.SiFive RISC-Vが動作する開発ボードのご紹介

 今現在、SiFiveのRISC-Vが動作するボードは、以下に示すものがあります。

 先日SiFive社より、新たに64bit RISC-Vチップを搭載し、Linuxが動作するHiFive Unmatchedボード(※1)が発表されました。HiFive Unmatchedボードについても、今後本ブログでお伝えしたいと思いますのでお楽しみに!

 ※1 HiFive Unmatchedの動画デモは

こちら


 今回はLinuxが動作するHiFive Unleashedボードについてご紹介します。

3.HiFive Unleashedボード概要

 以下がHiFive Unleashedボードの概要とスペックです。
 

4.HiFive UnleashedボードでLinuxを動かす

 HiFive Unleashdボードには、Linuxのイメージが書き込まれたmicroSDカードが同梱されています。単にLinuxの起動を確認するだけであれば、このmicroSDカードを用いれば良いのですが、実は最小限の構成で作られており、コンパイルなどの作業を行うことができません。そのため今回はこのmicroSDカードは使いません。
 HiFive Unleashedで動作するLinuxディストリビューションはいくつかありますが、今回はOpen Embedded(※2)の動かし方を説明します。

 ※2 Open Embeddedは正確にはLinuxディストリビューションではなく、組込み機器用のLinuxディストリビューションを作るためのソフトウェアフレームワークです。

4.1.Open Embeddedの動かし方

 Open Embeddedは、SiFive社が重点的にメンテナンス、サポートをしており、以下のサイトでアップデートが頻繁に行われています。

GitHub - sifive/freedom-u-sdk: Freedom U Software Development Kit (FUSDK)
Freedom U Software Development Kit (FUSDK). Contribute to sifive/freedom-u-sdk development by creating an account on GitHub.

 すべてのソースコード、ビルドツールは上記のサイトから入手可能ですが、Linuxをビルドする環境を用意するのに手間がかかるだけでなく、ビルドには非常に時間がかかるため、お手軽とは言えません。そこで今回は、Linuxのビルドは一切行わずに、最新のOpen Embedded Linuxを起動させることを目指すことにします。

4.2.用意するもの

 以下に事前に用意するものを示します。
  a) 開発ボード:HiFive Unleashedボード
  b) ホストPC:Windows 10
  c) USBケーブル:データ通信用
  d) ターミナルソフト:TeraTerm
  e) microSDカードへのイメージ書き込みソフト:Freedom Studio (v2020.06.3)
  f) microSDカード:HiFive Unleashedボード付属のものではなく、別途16GB以上のカードを用意
  g) microSDカードリーダ

4.3.Freedom Studioのインストール

 Freedom Studioは、SiFive社が無償で提供するソフトウェア統合開発環境です。
 コンパイラやデバッガなども含んだ統合開発環境ですが、microSDカードへのイメージ書き込みに利用することも可能です。

 以下のURLにアクセスし、Windows用のFreedom Studio(※3)を入手してください。

  https://static.dev.sifive.com/dev-tools/FreedomStudio/2020.06/FreedomStudio-2020-06-3-win64.zip

  ※3 本ブログ執筆時のバージョンはv2020.06.3です。

 ダウンロードしたzipファイルは、”c:¥FreedomStudio”フォルダを作成し、そこに展開してください。

4.4.ビルド済みイメージのダウンロード

  https://github.com/sifive/freedom-u-sdk/releases

 以下のサイトに、ビルド済みのLinuxイメージが各種あります。

 今回は、以下のファイルをダウンロードします。

  demo-coreip-cli-freedom-u540-2020.11.00.rootfs.wic.xz

4.5.msys2の起動

 WindowsでmicroSDカードへビルド済みLinuxイメージを書き込むときに利用可能なフリーツールはいくつか存在しますが、Freedom Studioに同梱されているmsys2(※4)を用いることでも書き込みが可能です。

  ※4 msys2は、Windows上でLinuxライクなコマンドが利用できるようにするもので、”C:¥FreedomStudio¥FreedomStudio-2020-06-3-win64¥SiFive¥msys64-1.0.0-2020.01.0″にあります。

4.6.デバイス名の特定

 次に、書き込み先のmicroSDカードデバイス名を把握する必要があります。
まずは、ホストPCにmicroSDカードリーダーを接続しない状態で、msys2の画面上で以下のコマンドを入力します。

# ls -l /dev/sd*

次に、microSDカードリーダーにLinuxイメージを書き込むmicroSDカードをセットした状態で、同様のコマンドを入力し、差分を見ます。
このときの差分からデバイス名を特定することができます。

4.7.microSDカードへビルド済みLinuxイメージの書き込み

 先ほど特定したデバイス名(※5)とxzcatコマンド、ddコマンドを使うことで、microSDカードへビルド済みのLinuxイメージを書き込みます。

 ※5 環境によってデバイス名は変化し、間違えるとPC本体のHDDを破壊してしまう恐れがあるため、十分注意が必要です。

4.8.Linuxの起動

 Linuxイメージを書き込んだmicroSDカードをHiFive Unleashedボードにセットし、以下のようにDIPスイッチを設定します。

 次にホストPC上でTeraTermを起動、HiFive UnleashedボードとホストPC間をUSBケーブルで繋ぎ、HiFive Unleashedボードの電源スイッチを押して電源を入れます。TeraTerm上で”USB Serial Port”が現れるため、そのポートに接続します。

 シリアルポートのボーレートを”115200″に設定し、しばらく待つとTeraTermの画面は、以下のようにログイン待ちの状態となります。

ここで、ログインユーザー名を”root”、パスワードを”sifive”と入力します。
ログインできたら、OSのバージョンを確認します。

4.9.Hello Worldのコンパイルと実行

 今回起動したLinuxにはGCCやリンカーが含まれているため、HiFive Unleashedボード上でコンパイルしたプログラムを実行することができます。実際に簡単なプログラムをhello.cというファイル名で作成し、コンパイル、実行します。

#include <stdio.h>

main()
{
    printf("Hello World!¥n");
}
# gcc hello.c
# ./a.out
Hello World!

5.まとめ

 今回は、SiFive RISC-Vが動作す開発ボードのご紹介、HiFive Unleashedボードの概要、HiFive Unleashedボードで動作する最新のLinuxを手早く起動し、簡単なプログラムのコンパイル、実行ができるところまでをお伝えしてきました。
 次回は、その他のLinuxディストリビューションのご紹介と、それぞれのLinuxディストリビューションでの動作例などをお伝えし、RISC-Vを使って容易にLinuxのアプリケーションが開発できることをお伝えする予定です。

■■DTSインサイトの「システムLSI設計ソリューションサービス」■■
 DTSインサイトでは、システムLSI/FPGA設計の受託も行っています。
 当社のノウハウを活かした、ソフトウェアの移行(マイグレーション)
 サービスも提供しておりますので、お気軽にご相談ください。

システムLSI設計ソリューションサービス紹介は こちら