[RISC-V技術ブログ連載第1回] 開発ボードを使ったSiFive RISC-V ソフトウェア開発環境のご紹介
DTSブログ
更新日:2020/11/30
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社が重点的にメンテナンス、サポートをしており、以下のサイトでアップデートが頻繁に行われています。

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

 すべてのソースコード、ビルドツールは上記のサイトから入手可能ですが、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)を入手してください。
  ※3 本ブログ執筆時のバージョンはv2020.06.3です。
  https://static.dev.sifive.com/dev-tools/FreedomStudio/2020.06/FreedomStudio-2020-06-3-win64.zip

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


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

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

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

  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のアプリケーションが開発できることをお伝えする予定です。

 本ブログについてのより詳しい内容へのご質問、またご紹介した各種評価ボードを実際に触ってみたいというかたは評価ボード貸し出しの対応も行っておりますので、ぜひお気軽にお問合せください。

 お問い合わせはこちら support-sifive@dts-insight.co.jp


■■その他のRISC-V技術ブログもぜひご覧ください。■■








システムLSI設計ソリューション トピックス トップページは こちら

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

RISC-V Core IP SiFive紹介は こちら

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