こんにちは。NoMaYです。ライセンスはMIT Licenseでした。TLSとしてmbed TLSが使用されていました。サポートされているボードの写真を見ていたら、どれにも有線LANコネクタが無いことに気付きました。時代の流れでしょうか、、、Getting Started with Amazon FreeRTOSaws.amazon.com/freertos/getting-started/Amazon FreeRTOSaws.amazon.com/freertos/Amazon FreeRTOS ソースコードgithub.com/aws/amazon-freertos[関連リンク]FreeRTOS - freertos.orgwww.freertos.org/FreeRTOS - sourceforge.netsourceforge.net/projects/freertos/files/FreeRTOS kernel自体はCC-RXにも対応github.com/aws/amazon-freertos/tree/master/lib/FreeRTOS/portable/RenesasAmazon FreeRTOSはTLSにmbed TLSを使用github.com/aws/amazon-freertos/tree/master/lib/third_party/mbedtls[ニュース]組み込み業界に大インパクト「Amazon FreeRTOS」の衝撃 - 大原雄介,MONOistmonoist.atmarkit.co.jp/mn/articles/1712/28/news011.htmlアマゾン「AWS IoT」は何が衝撃的なのか - 大原雄介,MONOistmonoist.atmarkit.co.jp/mn/articles/1510/21/news026.html(2018/01/01 : 記事を選び直しました。)[追記]もしかしたら、オープンソースライセンスのドライバライブラリが用意されていないから、ルネサスさんはアマゾンさんに相手にして貰えないのかも、、、ちなみに、FreeRTOS kernel自体のライセンスがV10からModified GPLからMIT Licenseに変わったようです。
こんにちは。NoMaYです。今までRX231-RSKのプロジェクトファイルでやっていましたが、RX65N Envision Kitのプロジェクトファイルへ変更して、以下のようにしてみました。後ほどzipファイルに固めたものを投稿します。(1) RX65N Envision Kitの.projectと.cprojectを流用して.projectと.cprojectを再作成(2) RX65N Envision KitではFITやコード生成機能がスマートコンフィグレータに統合されたことに対応(3) Amazon FreeRTOSのソースコードをOTA Agentのベータ版が追加されたV1.1.0へ変更(4) Amazon FreeRTOSに含まれるFreeRTOS kernelのFreeRTOS-Plus-TCPを含めるように変更(5) config_filesフォルダのFreeRTOSConfig.hとFreeRTOSIPConfig.hの流用元を変更
(1) RX65N Envision Kitの.projectと.cprojectを使用して.projectと.cprojectを再作成以下の製品ページからデモファームウェア(ソースコード)のダウンロードページへ行って、RX65N Envition Kit Demo Firmware with Source Codeのrx65n_envisionkit.zipをダウンロードし、含まれていたRX65N Secure Bootプロジェクトの.projectと.cprojectを流用して.projectと.cprojectを再作成しました。(なお、今はまだリンクまで辿り着かないので関係ありませんが、RX65N Secure Bootプロジェクトで設定されていたセクションや追加されていたライブラリはそのままになっていますので、リンクまで辿り着くようになった時点で、その点を見直す必要があります。)RX65N Envision KIT 製品ページwww.renesas.com/ja-jp/products/software-tools/boards-and-kits/renesas-promotion-boards/rx65n-envision-kit.html
(2) RX65N Envision KitではFITやコード生成機能がスマートコンフィグレータに統合されたことに対応同様に、RX65N Secure Bootプロジェクトのscfgファイルを流用してスマートコンフィグレータを利用出来るようにしました。今回、BSPはRX65N Secure Bootプロジェクトのクロック設定のまま残して、他のコンポーネントを一旦削除した後、CMTとRSPIを追加しました。(なお、コンポーネントは取り敢えず追加してみたというところで、設定は見直す必要があります。)
(3) Amazon FreeRTOSのソースコードをOTA Agentのベータ版が追加されたV1.1.0へ変更プロジェクト構造やインクルードパス/マクロ定義の変更は.projectや.cprojectあるいはewpファイルの新旧を比較して推測しました。(なお、GitHubにはプロジェクトの比較機能があり、以下のURLなどで比較結果を表示させることが出来ますが、今のところプロジェクト全体の比較結果の中の該当ファイルの表示箇所へジャンプさせるような手段しか見当たらず、今回の場合はプロジェクト全体の差分が大きいのでジャンプするのに時間が掛かるようです。また、Microchip Curiosity PIC32MZEFに関しては、ソースが追加されたのがV1.1.0であり、V1.0.0のソースが存在しませんので、比較結果はありません。) ちなみに、今のところOTA Agentのベータ版が追加されているのはTexas Instruments CC3220SF-LAUNCHXLとWindows Simulatorの2つのみです。demos\nxp\lpc54018_iot_module\iar\aws_demos.ewpgithub.com/aws/amazon-freertos/compare/v1.0.0...v1.1.0#diff-6f8e55efce8c79414970e6baa9a41f3bdemos\pc\windows\visual_studio\aws_demos.vcxproj.filtersgithub.com/aws/amazon-freertos/compare/v1.0.0...v1.1.0#diff-d0ae91d5447bb6a74ddccfbb02ab35a4demos\st\stm32l475_discovery\ac6\.cprojectdemos\st\stm32l475_discovery\ac6\.projectgithub.com/aws/amazon-freertos/compare/v1.0.0...v1.1.0#diff-d79cf9777a8eec4ff0f5747da19f0765demos\ti\cc3220_launchpad\ccs\.cprojectdemos\ti\cc3220_launchpad\ccs\.projectgithub.com/aws/amazon-freertos/compare/v1.0.0...v1.1.0#diff-2c2a1f88087cc60628b236f661947ce7これらの情報を参考にして以下のようなプロジェクト構造に変更しました。
(4) Amazon FreeRTOSに含まれるFreeRTOS kernelのFreeRTOS-Plus-TCPを含めるように変更Amazon FreeRTOSに含まれていたFreeRTOS kernelにはFreeRTOS-Plus-TCPも含まれていましたので、使用されているものだと思っていたのですが、シェルティさんの調査により、使用されていなかったことが分かりました。今回、調べてみたところ、Amazon FreeRTOSのV1.1.0で追加されたMicrochip Curiosity PIC32MZEFのソースで使用されていることが分かりましたが、開発環境がMicrochip Harmonyとなっていて、Eclipse系ではありませんでした。また、Amazon FreeRTOSのWindows Simulatorでも使用されていましたが、開発環境はVisual Studioとなっていて、これもEclipse系ではありませんでした。GitHubのAmazon FreeRTOSのソースの次にSourceForgeのFreeRTOS kernelのソースを調べてみましたが、見付かったのは同じくFreeRTOS kernelのWindows SimulatorのVisual Studioのプロジェクトのみでした。最後にFreeRTOSのサイトを探してみたところ、以下のダウンロードページからダウンロードした160919_FreeRTOS_Labs.zipに、Eclipse系のAtollic TrueSTUDIOのプロジェクトの.projectと.cprojectが見付かりましたので、それを参考にすることにしました。FreeRTOS+TCP and FreeRTOS+FAT Source Code Free Downloadwww.freertos.org/FreeRTOS-Labs/RTOS_labs_download.html.projectと.cproject160919_FreeRTOS_Labs\FreeRTOS-Plus\Demo\FreeRTOS_Plus_TCP_and_FAT_STM32F4xxx\.project160919_FreeRTOS_Labs\FreeRTOS-Plus\Demo\FreeRTOS_Plus_TCP_and_FAT_STM32F4xxx\.cprojectなお、今回、FreeRTOS-Plus-TCPからMCUをアクセスする処理が記述されるソースであるNetworkInterface.cは以下のファイルをコピーしました。(CopyrightはAmazon.com, Incでは無くMicrochip Technology Incorporated and its subsidiariesでしたが、ライセンスは通常のMITライセンスでした。)コピー元:amazon-freertos-1.1.0\lib\FreeRTOS-Plus-TCP\source\portable\NetworkInterface\pic32mzef\NetworkInterface_eth.cコピー先:amazon-freertos-1.1.0\lib\FreeRTOS-Plus-TCP\source\portable\NetworkInterface\RX600\NetworkInterface.cこの階層には以下のファイルもあったのですが、必要な処理が足りているか分からず、コピーしませんでした。amazon-freertos-1.1.0\lib\FreeRTOS-Plus-TCP\source\portable\NetworkInterface\SH2A\NetworkInterface.cこの階層には他にも以下のフォルダがあり、それぞれにNetworkInterface.cがありました。amazon-freertos-1.1.0\lib\FreeRTOS-Plus-TCP\source\portable\NetworkInterface\ATSAM4Eksz8851snlLPC17xxLPC18xxSTM32FxxWinPCapZynqちなみに、以下のウェブページにポーティングについての説明がありました。Porting FreeRTOS+TCP to a Different Microcontrollerwww.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/Embedded_Ethernet_Porting.html
(5) config_filesフォルダのFreeRTOSConfig.hとFreeRTOSIPConfig.hの流用元を変更FreeRTOSのコンフィグレーションファイルであるFreeRTOSConfig.hは、今まで以下のRX231-RSKのものを持って来ていましたが、今回は以下のRX64M-RSKのものを持って来ることにしました。今までの流用元:FreeRTOSv10.0.0\FreeRTOS\Demo\RX200_RX231-RSK_Renesas_e2studio\src\FreeRTOSConfig.h今までの流用先:amazon-freertos-1.0.0\demos\renesas\rx231-rsk\common\config_files\FreeRTOSConfig.h今回の流用元:FreeRTOSv10.0.1\FreeRTOS\Demo\RX600_RX64M_RSK_Renesas_e2studio\Source\FreeRTOSConfig.h今回の流用先:amazon-freertos-1.1.0\demos\renesas\rx65n-envision-kit\common\config_files\FreeRTOSConfig.hそれに対し、FreeRTOS-Plus-TCPのコンフィグレーションファイルであるFreeRTOSIPConfig.hは、今まで(使用されていなかったのですが)以下のSTMicroelectronics STM32L4 Discovery Kit IoT Nodeのものを持って来ていましたが、今回は(Amazon FreeRTOSのV1.1.0で使用されていることが分かった)以下のMicrochip Curiosity PIC32MZEFのものを持って来ることにしました。今までの流用元:amazon-freertos-1.0.0\demos\st\stm32l475_discovery\common\config_files\FreeRTOSIPConfig.h今までの流用先:amazon-freertos-1.0.0\demos\renesas\rx231-rsk\common\config_files\FreeRTOSIPConfig.h今回の流用元:amazon-freertos-1.1.0\demos\microchip\curiosity_pic32mzef\common\config_files\FreeRTOSIPConfig.h今回の流用先:amazon-freertos-1.1.0\demos\renesas\rx65n-envision-kit\common\config_files\FreeRTOSIPConfig.hちなみに、以下のウェブページにコンフィグレーションについての説明がありました。FreeRTOSConfig.hCustomisationwww.freertos.org/a00110.htmlFreeRTOSIPConfig.hFreeRTOS+TCP Configurationwww.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_IP_Configuration.html