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です。

    今の作業で以下を追加しようと思います。(今夜半ぐらい)

    ・BSP_CFG_HEAP_BYTESを0に出来そうなのでr_bsp_config.hで0にしてみる

     (a) Amazon FreeRTOS側ではmalloc()やcalloc()を実質的に使っていなかったことが分かった
     (a') また特に意味無くリンクされていた部分があったが取り除く方法も分かった
     (b) FITモジュール+CC-RXではlowsrc.cの_INIT_IOLIB()内のfreopen()のせいでmalloc()がリンクされるが多分CC-RXのライブラリソースでfreopen()と何かmalloc()を使用する関数が同一のソースに記述されているせいでfreopen()を使うと一緒にmalloc()までもがリンクされ(そしてsbrk()もリンクされ)ただけで_INIT_IOLIB()内のfreopen()自体はmalloc()は呼んでいない(malloc()が呼ばれればsbrk()も呼ばれる筈であるが呼ばれなかった)
     (c) Amazon FreeRTOSデモプログラム+CC-RXでは同様のカラクリ(だと思う)のせいで以下を使おうとするとmalloc()がリンクされ(そしてsbrk()もリンクされ)るがmalloc()は呼ばれないようだ(malloc()が呼ばれればsbrk()も呼ばれる筈であるが呼ばれなかった)
       sprintf()
       snprintf()
       vsnprintf() <-- これは確かめるのを略した
       sscanf()

    09foxさん、こんにちは。NoMaYです。

    先程のコミットで/.setting/を.gitignoreに追加されましたが、.settingフォルダはe2 studioのプロジェクト情報(.projectや.cprojectに保存されていない情報)も含まれていて、丸ごと除外するのは危ないと思います。シェルティさんと相談してみて頂けないでしょうか。

Reply
  • シェルティさん、こんにちは。NoMaYです。

    今の作業で以下を追加しようと思います。(今夜半ぐらい)

    ・BSP_CFG_HEAP_BYTESを0に出来そうなのでr_bsp_config.hで0にしてみる

     (a) Amazon FreeRTOS側ではmalloc()やcalloc()を実質的に使っていなかったことが分かった
     (a') また特に意味無くリンクされていた部分があったが取り除く方法も分かった
     (b) FITモジュール+CC-RXではlowsrc.cの_INIT_IOLIB()内のfreopen()のせいでmalloc()がリンクされるが多分CC-RXのライブラリソースでfreopen()と何かmalloc()を使用する関数が同一のソースに記述されているせいでfreopen()を使うと一緒にmalloc()までもがリンクされ(そしてsbrk()もリンクされ)ただけで_INIT_IOLIB()内のfreopen()自体はmalloc()は呼んでいない(malloc()が呼ばれればsbrk()も呼ばれる筈であるが呼ばれなかった)
     (c) Amazon FreeRTOSデモプログラム+CC-RXでは同様のカラクリ(だと思う)のせいで以下を使おうとするとmalloc()がリンクされ(そしてsbrk()もリンクされ)るがmalloc()は呼ばれないようだ(malloc()が呼ばれればsbrk()も呼ばれる筈であるが呼ばれなかった)
       sprintf()
       snprintf()
       vsnprintf() <-- これは確かめるのを略した
       sscanf()

    09foxさん、こんにちは。NoMaYです。

    先程のコミットで/.setting/を.gitignoreに追加されましたが、.settingフォルダはe2 studioのプロジェクト情報(.projectや.cprojectに保存されていない情報)も含まれていて、丸ごと除外するのは危ないと思います。シェルティさんと相談してみて頂けないでしょうか。

Children
  • NoMaYさん

    こんにちは。シェルティです。

    ご協力感謝です。ヒープの件承知しました。ありがとうございます。
    実はすでにAmazonの検定を進めておりまして、フィードバックがあった内容を適宜09foxさんに
    GitHubにコミットいただいています。.gitignoreもフィードバックがあった項目ですね。
    中間フォルダ・ファイルは.gitignoreに登録せよ、といった類のフィードバックでした。
    .settingは残した方が良いと私も思うので他のメンバーにも確認しつつ、元に戻すかどうか決めます。

    例によって私が出張で出歩いていて事務所にいないので、09foxさんは迷いながらもGitHubに
    コミットしている状態と思います。
    #変になったらあとでシェルティが直すから、どんどんコミットしておいてほしい、と09foxさんにはお願いしてあります。

    NoMaYさん視点のコメントを書いておいていただけますと、
    あとで内部で集まってレビューする際に非常に助かりますので、他にも気になるところがあれば書いて
    頂けますと幸いです。

    次回内部で集まってレビューするのは12月7日朝の予定です。

    RXマイコン用のAmazon FreeRTOSは一度検定が通ったあとも、おそらく年単位で継続してメンテしていきます。
    相応の開発予算も継続割り当てが要るであろう、といった議論も内部で進めています。
    引き続きコードを磨いてまいりましょう。

    以上です