2021年4月号特集「Amazon×マイコン FreeRTOS入門」サポート・ページ

 

特集の概要

●マイコン向けの軽量OS「リアルタイムOS」がテーマ

 マイコンで動くプログラムは,どのように作成しているのでしょうか.さまざまな作成方法が用意されていますが,本特集ではOS(Operating System)を使ってマイコンのプログラムを作成する方法を紹介します.

 OSにはいろいろな種類がありますが,主にマイコンで用いられるOSにリアルタイムOSRTOS)と呼ばれるものがあります.WindowsLinuxのような汎用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部 開発実習

第2部のサポート・ページ

●第1章 プロローグ…FreeRTOSの基礎智識 後閑 哲也

第2部では,実際のマイコンを使ってFreeRTOSを動かしてみます.タスクの作り方から,バッファやセマフォの使い方まで,FreeRTOSを動かすために知っておきたいことを一通り解説します.

本章では,FreeRTOSの概要から特徴,全体の構成について解説します.

FreeRTOSConfig.hで設定できる項目

 

●第2章 実習の準備…トレーニング用ハードウェアの製作 後閑 哲也

本章では,第2部でFreeRTOSを動かすときに使うハードウェアを準備します.基板を用いて製作する方法を解説しますが,部品を集めればブレッドボードでも同様に試せます.詳細は次のページを参照してください.

基板の設計データのダウンロード・ページ

ブレッドボードで試す方法

ライブラリが提供する関数

左:第2章で製作する基板,右:ブレッドボードで同様の実験をしているようす

 

▼Appendix1 実習で使う開発環境の概要 後閑 哲也

第2部のソフトウェア開発には,マイクロチップ・テクノロジーが提供する「Harmony v3」というコード自動生成機能を含むフレームワークを使います.ハードウェアに依存するコードは,GUI画面で設定するだけで組み込めるので,FreeRTOSプログラミングの学習に専念できます.

本章では,このHarmony v3を含む開発環境の概要を解説します.

 

●第3章 FreeRTOS初体験!「マルチタスクLチカ」の実験 後閑 哲也

本章では,最初の実習として開発環境の構築方法と,マルチタスク機能を使ったLED点滅プログラムの作成方法を解説します.関連ツールのインストール手順から,プロジェクト作成,ソースコードの記述まで,ステップ・バイ・ステップで解説します.

API関数の詳細

サンプル・プログラムのダウンロード・ページ

・実演動画(準備中)

 

●第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を介したアナログ値の伝送実験を行ってみます.

開発環境の構築手順

サンプル・プログラムのダウンロード・ページ