Amazon FreeRTOSだそうです。ルネサスさんのRXは参加しないのかな?

こんにちは。NoMaYです。

ライセンスはMIT Licenseでした。TLSとしてmbed TLSが使用されていました。サポートされているボードの写真を見ていたら、どれにも有線LANコネクタが無いことに気付きました。時代の流れでしょうか、、、

Getting Started with Amazon FreeRTOS
aws.amazon.com/freertos/getting-started/

Amazon FreeRTOS
aws.amazon.com/freertos/

Amazon FreeRTOS ソースコード
github.com/aws/amazon-freertos

[関連リンク]

FreeRTOS - freertos.org
www.freertos.org/

FreeRTOS - sourceforge.net
sourceforge.net/projects/freertos/files/

FreeRTOS kernel自体はCC-RXにも対応
github.com/aws/amazon-freertos/tree/master/lib/FreeRTOS/portable/Renesas

Amazon FreeRTOSはTLSにmbed TLSを使用
github.com/aws/amazon-freertos/tree/master/lib/third_party/mbedtls

[ニュース]

組み込み業界に大インパクト「Amazon FreeRTOS」の衝撃 - 大原雄介,MONOist
monoist.atmarkit.co.jp/mn/articles/1712/28/news011.html

アマゾン「AWS IoT」は何が衝撃的なのか - 大原雄介,MONOist
monoist.atmarkit.co.jp/mn/articles/1510/21/news026.html

(2018/01/01 : 記事を選び直しました。)

[追記]

もしかしたら、オープンソースライセンスのドライバライブラリが用意されていないから、ルネサスさんはアマゾンさんに相手にして貰えないのかも、、、

ちなみに、FreeRTOS kernel自体のライセンスがV10からModified GPLからMIT Licenseに変わったようです。

Parents
  • こんにちは。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.ewp
    github.com/aws/amazon-freertos/compare/v1.0.0...v1.1.0#diff-6f8e55efce8c79414970e6baa9a41f3b

    demos\pc\windows\visual_studio\aws_demos.vcxproj.filters
    github.com/aws/amazon-freertos/compare/v1.0.0...v1.1.0#diff-d0ae91d5447bb6a74ddccfbb02ab35a4

    demos\st\stm32l475_discovery\ac6\.cproject
    demos\st\stm32l475_discovery\ac6\.project
    github.com/aws/amazon-freertos/compare/v1.0.0...v1.1.0#diff-d79cf9777a8eec4ff0f5747da19f0765

    demos\ti\cc3220_launchpad\ccs\.cproject
    demos\ti\cc3220_launchpad\ccs\.project
    github.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 Download
    www.freertos.org/FreeRTOS-Labs/RTOS_labs_download.html

    .projectと.cproject
    160919_FreeRTOS_Labs\FreeRTOS-Plus\Demo\FreeRTOS_Plus_TCP_and_FAT_STM32F4xxx\.project
    160919_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\

    ATSAM4E
    ksz8851snl
    LPC17xx
    LPC18xx
    STM32Fxx
    WinPCap
    Zynq

    ちなみに、以下のウェブページにポーティングについての説明がありました。

    Porting FreeRTOS+TCP to a Different Microcontroller
    www.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.h

    Customisation
    www.freertos.org/a00110.html

    FreeRTOSIPConfig.h

    FreeRTOS+TCP Configuration
    www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_IP_Configuration.html
     

Reply
  • こんにちは。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.ewp
    github.com/aws/amazon-freertos/compare/v1.0.0...v1.1.0#diff-6f8e55efce8c79414970e6baa9a41f3b

    demos\pc\windows\visual_studio\aws_demos.vcxproj.filters
    github.com/aws/amazon-freertos/compare/v1.0.0...v1.1.0#diff-d0ae91d5447bb6a74ddccfbb02ab35a4

    demos\st\stm32l475_discovery\ac6\.cproject
    demos\st\stm32l475_discovery\ac6\.project
    github.com/aws/amazon-freertos/compare/v1.0.0...v1.1.0#diff-d79cf9777a8eec4ff0f5747da19f0765

    demos\ti\cc3220_launchpad\ccs\.cproject
    demos\ti\cc3220_launchpad\ccs\.project
    github.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 Download
    www.freertos.org/FreeRTOS-Labs/RTOS_labs_download.html

    .projectと.cproject
    160919_FreeRTOS_Labs\FreeRTOS-Plus\Demo\FreeRTOS_Plus_TCP_and_FAT_STM32F4xxx\.project
    160919_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\

    ATSAM4E
    ksz8851snl
    LPC17xx
    LPC18xx
    STM32Fxx
    WinPCap
    Zynq

    ちなみに、以下のウェブページにポーティングについての説明がありました。

    Porting FreeRTOS+TCP to a Different Microcontroller
    www.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.h

    Customisation
    www.freertos.org/a00110.html

    FreeRTOSIPConfig.h

    FreeRTOS+TCP Configuration
    www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_IP_Configuration.html
     

Children
No Data