【新機能】Amazon FreeRTOSのソースを作成してみた #reinvent #freertos
はじめに
re:Invent 2017で発表されたAmazon FreeRTOSですが、Amazon Management Consoleから利用可能になっていました。Amazon FreeRTOSの中身を知るべく、すこし試してみましたのでレポートします。
Amazon FreeRTOS
マネージメントコンソールにログインして、サービス一覧を見てみると、「IoT」のセクションに、「Amazon FreeRTOS」が増えています。
これをクリックすると、FreeRTOSプロジェクトを選択&設定する画面となります。リージョンは東京のままでOKでした。
事前に定義済みのソフトウェア設定として、下記が用意されています。
- Connect to AWS IoT - Windows
- Connect to AWS IoT - TI
- Connect to AWS IoT - ST
- Connect to AWS IoT - NXP
- Connect to AWS Greengrass - Windows
- Connect to AWS Greengrass - TI
- Connect to AWS Greengrass - ST
- Connect to AWS Greengrass - NXP
プラットフォームが、Windows/ TI / ST / NXP の4種類。そして接続先が、AWS IoT、AWS Greengrassの二種類です。
右側のアイコン(赤丸)をクリックすると、ハードウェアプラットフォームをカスタマイズする画面となります。ここでターゲットとなるハードウェアプラットフォームを選択することができます。ただし現在選択できるのは、各ベンダーで特定のプラットフォームだけのようです。
- Windows
- TI - CC3320SF-LAUNCHXL
- ST - STM32L4 DiscoveryKit for IoT node
- NXP - LPC54018 IoT Module
また、開発環境IDEも設定対象にありましたが、各プラットフォームそれぞれ下記の1択のようです。
- Windows Simulator - VisualStudio
- NXP - IAR Embedded Workbench
- TI - Code Composer Studio
- ST - System Workbench for STM32
さらに、プロジェクトに含めるライブラルを選択することができるようにです。デフォルトでは、
- MQTT
が選択状態になっていますが、
- Greengrass Discovery
- Thing Shadow
を追加することが可能なようです。
プロジェクトをダウンロード
設定がOKであれば、ダウンロードのリンクをクリックします。そうすると、zipで固められたプロジェクトがダウンロードできます。ここではNXP用のプロジェクトファイルをデフォルト設定のままダウンロードした例を示します。zipを解凍すると、README.md が入っており、各ドキュメントへのリンクが明記されています。
プロジェクトの中身はデモ用のソースファイルすべてが含まれているようです。
ディレクトリやファイル名から想像するに、FreeRTOS本体や、暗号化処理、TLS接続や証明書を扱うコードが含まれているようです。
ターゲットとなるボードがWiFiをサポートしているので、その関連ファイルも含まれています。赤丸で示したファイルにSSIDやパスワード、秘密鍵や証明書を設定するようなサンプルとなっているようです。
また、プロジェクトに含まれている、AmazonFreeRTOS/demos/common/devmode_key_provisioning/CertificateConfigurationTool/CertificateConfigurator.html をブラウザで開くと、下記のような画面が現れます。ここから証明書や秘密鍵を設定することが可能なようです。その結果は、さきほどのaws_clientcredential_keys.h に書き込まれるようです。
今回試せたのはここまでです。
まとめ
Amazon FreeRTOSで、プロジェクトを作成してみました。MQTTをサポートするサンプルのプロジェクトが得られるので、これをベースに開発を進めていくことになるようです。AWS IoTやAWS Greengrassに対応するために必要な機能が揃ったかたちで用意されますので、IoTデバイスの開発を始めることが容易になると思います。
実際に実機で動作させる方法についても少し調べています。判明したら別途レポートしたいと思います。
参考
- Amazon FreeRTOS https://aws.amazon.com/jp/freertos/
- IAR IDE https://www.iar.com/iar-embedded-workbench/partners/nxp
- 製品ページ http://www.nxp.com/demoboard/OM40007
- ユーザガイド https://www.nxp.com/docs/en/user-guide/UM11078.pdf
- LPC54018 IoT Solution with Amazon FreeRTOS http://www.nxp.com/LPC-AWS-Module