1.はじめに
前回のRISC-V技術ブログでは、HiFive Unmatchedボードで手軽に評価が行えるOSを実際に動作させてみて、その様子をご紹介しました。HiFive Unmatchedボードへ数々のLinuxの移植が実現され、手軽に試すことができる点がご理解いただけたのではないかと思います。
今回は、組込みシステムで利用されるリアルタイムOS(RTOS/Real Time Operating System)の中でも、最近注目度の高いFreeRTOS™のご紹介と、HiFive UnmatchedボードでFreeRTOSを動かす様子をお伝えします。
2.FreeRTOSとは
FreeRTOSとは、マイコン用のリアルタイムOSの一つであり、正式にはAmazon FreeRTOSと言います。FreeRTOSは、元々Amazonが開発したものではありませんでしたが、2017年にAmazonが開発元の会社ごと買収し、FreeRTOS一式の権利を得たことでFreeRTOSにAmazonの名が付きました。Amazonが買収する前はGPL v2ライセンスの形で提供されていたため、誰でも無償利用が可能ではあるものの、商用利用の際にもソースコード開示義務が伴っていました。
現在、Amazon FreeRTOSとなってからは、MITライセンスに変更され、著作権およびMITライセンスの全文表示が義務付けされるものの、ソースコードの改変、再配布、商用利用、有償提供のすべてが可能となり、またソースコードの開示義務もないため、マイコンベンダー各社のAmazon FreeRTOSへの対応が加速しました。
3.FreeRTOSの主な特徴
FreeRTOSには、以下のような特徴があります。
・ 高信頼性、小型かつ省電力のカーネル
FreeRTOSカーネルは、実証済みの堅牢性、小さなプットプリント、ティックレス低電力モード(※1)をサポート
・ アーキテクチャサポート
RISC-V,ARMv8-M(Arm Cortex-M33)を含む40以上のMCUアーキテクチャに対応
・ モジュラーライブラリ
セキュアな「ローカル接続ライブラリ」、「クラウド接続ライブラリ」などのアドオンライブラリを多数用意
・ ロングタームサポート(LTS)
FreeRTOS LTSライブラリには2年間の「セキュリティアップデート」と「重大バグ修正」が付属
・ AWSリファレンス・インテグレーション
AWS IoT Core (クラウド)との接続が実証済みのリファレンスボード、ライブラリを数多く用意
・ MITライセンス
ソースコードの改変、再配布、商用利用、有償提供のすべてが可能となり、ソースコードの開示義務もない
※1 一部のアーキテクチャでは、アイドル期間 (実行可能なアプリケーションタスクがない期間) に周期ティック割り込みを停止することで省電力状態にすることができる。
4.SiFiveによるFreeRTOSサポート状況
以下にFreeRTOSが動作するSiFive製ボードを示します。

また、ソースコードはこちらのGitHubから誰でも入手することが可能です。
5.FreeRTOS動作デモ
5.1.概要
今回、Freedom E SDKに同梱されているサンプルプログラムである、”example-freertos-blinky”を動作させてみます。このサンプルプログラムは、以下のフローに示すように、送信用タスク(prvQueueSendTask())と受信用タスク(prvQueueReciveTask())の2つのタスクを生成し、これら2つのタスク間通信によってUARTにメッセージが出力される様子を確認するものです(※2)。

※2 本来“blinky”と名前にあるように、LEDを点滅させるものですが、現時点ではHiFive Unmatched用のLEDドライバは未対応なため、LED表示処理はすべて抑制(コメントアウト)しました。
5.2.動作環境
以下に動作環境を示します(※3)。

※3 RISC-V技術ブログ連載第11回、RISC-V技術ブログ連載第12回でお伝えした内容も参考になります。
5.3.動作デモ
以下の画像をクリックすると、Freedom Studio上でFreeRTOSのサンプルプログラムが動作する様子をYouTube動画でご覧になれます。

6.まとめ
いかがでしたでしょうか。前回のRISC-V技術ブログでご紹介したLinuxのようなデスクトップPC用としても利用されるようなOSだけでなく、組込みシステムで多く採用されるRTOSについても、比較的簡単にHiFive Unmatchedボードで動作させることがご理解いただけたのではないではないでしょうか。
次回は、HiFive Unmatchedボードから一旦離れまして、昨年の12月RISC-V Internationalによって承認された15の新たな仕様について、ポイントをわかりやすくお伝えすることができればと考えています。どうぞお楽しみに!
本ブログについてのより詳しい内容へのご質問等ございましたら、ぜひお気軽にお問合せください。
お問い合わせはこちら
info-lsi@dts-insight.co.jp
注:
・FreeRTOS™は Amazon Web Services, Inc.の商標です。
・GitHub®は、GitHub Inc.の商標または登録商標です。
・その他、会社名や製品名は各社の登録商標または商標です。
■■DTSインサイトの「システムLSI設計ソリューションサービス」■■
DTSインサイトでは、システムLSI/FPGA設計の受託も行っています。
当社のノウハウを活かした、ソフトウェアの移行(マイグレーション)
サービスも提供しておりますので、お気軽にご相談ください。
システムLSI設計ソリューションサービス紹介は こちら