Interface編集部
2021年4月号特集「Amazon×マイコン FreeRTOS入門」サポート・ページ
特集の概要
●マイコン向けの軽量OS「リアルタイムOS」がテーマ
マイコンで動くプログラムは,どのように作成しているのでしょうか.さまざまな作成方法が用意されていますが,本特集ではOS(Operating System)を使ってマイコンのプログラムを作成する方法を紹介します.
OSにはいろいろな種類がありますが,主にマイコンで用いられるOSにリアルタイムOS(RTOS)と呼ばれるものがあります.WindowsやLinuxのような汎用OSとは違い,ローエンドのマイコンでも動作する小型軽量タイプのOSです.汎用OSと比べると機能はシンプルですが,マイコンで動かすことに特化していて,古くから組み込み機器などの装置に搭載されてきました.
●大手ITメーカの参入でリアルタイムOS新時代に突入!
リアルタイムOSが使われるようになって数十年経ちますが,最近のIoT(Internet of Things:モノのインターネット)化の流れで,RTOSにも新たな動きが出てきました.その代表が,アマゾンによるリアルタイムOS開発会社の買収です.
●特集ではAmazonのマイコン向け軽量OS「FreeRTOS」を紹介
特集では,FreeRTOSと呼ばれるマイコン向けの軽量OSを紹介します.FreeRTOSは,もともとリチャード・バリー(Richard Barry)氏が開発したリアルタイムOSで,2003年に公開された後,,Real Time Engineer社によって開発と配布が続けられてきましたが,2017年にアマゾンが買収しました.現在アマゾンから提供されているFreeRTOSには,次のような特徴があります.
▼特徴1:無償で利用できる
MITライセンスで公開されたオープンソースであり,製品にも無償で利用できる
▼特徴2:クラウド連携が容易
インターネット接続やクラウド連携,特にアマゾン ウェブ サービス(AWS)との連携を行うプログラムの作成が容易であり,IoTで今後重要になるOTA(通信によるマイコンのプログラム更新)が考慮されている
▼特徴3:対応アーキテクチャ40種以降
Arm Cortex-Mコアのマイコンに限らずいろいろなマイコンに対応しており,また多くのマイコン・メーカの協力で安価なスタータ・キットが多数用意されている
▼特徴4:継続的な保守が行われている
継続的に保守や機能拡張が行われていて将来の安心感があり,2020年12月に初めて2年間サポートされるLTS版が出た
目次と記事サポート・ページへのリンク
■第1部 新定番!FreeRTOSが来た
●第1章 IoTに標準対応!マイコンOSの新定番Amazon FreeRTOS 永原 柊
あのアマゾンが提供するマイコンOS「FreeRTOS」とはどんなものなのか?WindowsやLinuxのような汎用OSとの違いから,RTOSの基礎知識,使うメリットなどを紹介します.また,他の開発手法との比較や,利用イメージも解説します.
●第2章 アマゾン認定!FreeRTOS開発ボード図鑑 永原 柊
FreeRTOSには,アマゾン ウェブ サービス(AWS)との連携動作を確認したハードウェアが用意されています.本章ではこれらのハードウェアの中から,比較的入手が容易なものを紹介します.
・AWS Partner Device Catalog:https://devices.amazonaws.com/
▼Appendix1 アマゾンによる買収でFreeRTOSはどう変わったか 中村 和夫,金城 正之,尾松 龍雄
FreeRTOSは,もともと2003年から公開されているオープンソースのリアルタイムOSでしたが,2017年にアマゾンに買収されました.この買収により,FreeRTOSはどう変わったのでしょうか?本章ではアマゾン買収後にFreeRTOSがどう変わったのかを解説します.
●第3章 アルタイムOSの基礎知識とマルチタスクのしくみ 古城 隆
そもそもリアルタイムOSとは何なのでしょうか?本章ではマルチタスク機能に焦点を絞り,WindowsやLinuxなどの汎用OSと何が違うのかを解説します.また,リアルタイムOSで動作するアプリケーションを設計する際のコモンセンスについても解説します.
■第2部 開発実習
●第1章 プロローグ…FreeRTOSの基礎智識 後閑 哲也
第2部では,実際のマイコンを使ってFreeRTOSを動かしてみます.タスクの作り方から,バッファやセマフォの使い方まで,FreeRTOSを動かすために知っておきたいことを一通り解説します.
本章では,FreeRTOSの概要から特徴,全体の構成について解説します.
●第2章 実習の準備…トレーニング用ハードウェアの製作 後閑 哲也
本章では,第2部でFreeRTOSを動かすときに使うハードウェアを準備します.基板を用いて製作する方法を解説しますが,部品を集めればブレッドボードでも同様に試せます.詳細は次のページを参照してください.
左:第2章で製作する基板,右:ブレッドボードで同様の実験をしているようす
▼Appendix1 実習で使う開発環境の概要 後閑 哲也
第2部のソフトウェア開発には,マイクロチップ・テクノロジーが提供する「Harmony v3」というコード自動生成機能を含むフレームワークを使います.ハードウェアに依存するコードは,GUI画面で設定するだけで組み込めるので,FreeRTOSプログラミングの学習に専念できます.
本章では,このHarmony v3を含む開発環境の概要を解説します.
●第3章 FreeRTOS初体験!「マルチタスクLチカ」の実験 後閑 哲也
本章では,最初の実習として開発環境の構築方法と,マルチタスク機能を使ったLED点滅プログラムの作成方法を解説します.関連ツールのインストール手順から,プロジェクト作成,ソースコードの記述まで,ステップ・バイ・ステップで解説します.
・実演動画(準備中)
●第4章 動かしながら学ぶ!FreeRTOSプログラミング 後閑 哲也
第3章に引きつづき,実際に動かしながらFreeRTOSのプログラミングを学んでいきます.本章では,タスクの作り方からキュー・バッファ,割り込み,セマフォ,排他制御,タスク通知,ストリーム・バッファの使い方を解説します.
・実演動画(準備中)
■第3部 8ビットPICへの実装にトライ
●第1章 PIC18でも動く超軽量ビルド!My FreeRTOS作りにトライ 宮田 賢一
本章では,構成をカスタマイズした自分専用のFreeRTOSを作ってみます.ここではメモリ使用量に注目して,PIC18マイコンで動作する小型軽量なFreeRTOS作りに挑戦します.
■第4部 個人で試せるアマゾン・クラウドで遠隔通信
●第1章 ESP32でサッ!AWSとAmazon FreeRTOSのセキュア接続 古城 隆
本章では,実際にAWSとFreeRTOSを接続する方法を解説します.AWSコンソールで認証設定を行ったFreeRTOSソースコードを使い,TLS(Transport Layer Security)でセキュアに接続します.また,パケット・キャプチャを使って,AWSとどのような通信を行っているのかを実際に見てみます.
●第2章 マイコン・ファームウェアはネットで更新!OTA機能を試す 古城 隆
本章では,いまどきのリアルタイムOSで主流になりつつあるOTA(Over The Air)機能を使って,マイコンのファームウェアを更新する手順を解説します.FreeRTOSは,署名検証用の証明書とOTA Updateエージェントを事前に組み込んだソースコードを使います.
●第3章 AWS IoT越しのL チカ&マルチバイブレータ実験 geachlab,丸石 康
本章では,2台のM5Stick C Plusを使って,AWSのMQTTブローカを介した機器間のデータ送受信実験を行います.実験1では,AWSを介したLチカ実験を行ってみます.実験2では,マルチバイブレータを題材に,AWSを介したアナログ値の伝送実験を行ってみます.