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

    私の今の進捗です。なお、Amazon本家がv1.4.2→v1.4.3になっていましたので、これから差分の取り込みを行います。今回のリリースのメインはXilinx Zynq-7000 based MicroZed Industrial IoT Bundleというボードが追加されたことですかね。あと、mbed TLSライブラリが2.8.0→2.13.1になったことと、PKCS #11ライブラリ(まだルネサスボードへの移植済みソースは無い)の抜本的変更があったことも、大きなところのようです。(といっても、私には以下の変更履歴の内容はチンプンカンプンだったりしますが、、、)

    Change Log for Amazon FreeRTOS
    github.com/aws/amazon-freertos/blob/86a1c8a/CHANGELOG.md

    ちなみに、v1.4.3のフォルダツリーをチラ見していて気付いたのですが、.projectファイルや.cprojectファイルのAFQP適合チェックツール、ソースコードのスタイル(Hungarian Notation)チェックツール、gitのhooksなどもありました。そして、AFQP適合チェックでは"aws_demos"以外のプロジェクト名は不可にしていました。(以前、AFQPのドキュメントを読んだ時には不可だとは読み取れませんでしたが、、、) 認証を受けるプロジェクトに関しては(その時までには)"aws_demos"に戻しておく必要がありそうです。

    AFQP適合チェックツール
    github.com/aws/amazon-freertos/tree/86a1c8a/tools/checks/afqp/afqp_check

    Hungarian Notationチェックツール
    github.com/aws/amazon-freertos/tree/86a1c8a/tools/checks/style/hn_check

    Git-Hooks
    github.com/aws/amazon-freertos/tree/86a1c8a/tools/git/hooks

    以下、進捗です。(は新規項目もしくは状況変化項目です。)

    作業中
    コンパイル時のワーニングを減らす(FITモジュールのソースの修正もあります)
    ⇒来週の中頃までには作業を終了させます(区切りを付けます)
    Amazon本家のv1.4.2→v1.4.3の差分の取り込み
    ⇒チラ見中です

    来週中頃~再来週初めの作業
    ●GNURXのリンク時のワーニングを取る
    ●GR-SAKURAのe2 studioプロジェクトでインクルードファイルに関してINDEXERエラーが出ているのを何とかしたい
    ●demos\renesas\XXX\common\config_file\*.hの#define等の順序をAmazon FreeRTOS本家の*.hに合わせる
    ●ビルド前ステップのバッチファイルの見直し(make.exeが見付かりません問題の緩和策も)

    コミット済みだがデバッグ未着手だった件の作業(来週中頃~再来週初め)
    ●スタートアップ処理でC++のコンストラクタを呼び出し可能にした(GNURXで使われていた#ifdef CPPAPP~#endifで括った)
    ●R_BSPのsbrk()はCC-RXとGNURXで有効になっているけれどもGNURXで呼び出されることがあるかどうか確認する

    最近気になり始めたこと : ツールで対処して貰わないと駄目そうな分
    ●ワーニングレベルを上げるとvoid R_CGC_Create_UserInit();のような引数void無し関数宣言/関数本体で警告が出る(CG)
    ●ワーニングレベルを上げるとvoid R_SCI_PinSet_SCI0();のような引数void無し関数宣言/関数本体で警告が出る(FIT)

    最近気になり始めたこと(&思い出したこと) : RX71M-RSK, RX64M-RSK, RX63N-RSKの作業の前に対処したい分

    有線LAN版のsecure socketsのポーティングソースをAmazon FreeRTOSが事前準備しているフォルダ下のソースに変更
    entropy_hardware_poll.cのmbedtls_hardware_poll()が取り敢えず版のような印象なので直してみる
    ●ICCRX向けのiodefine.hの#pragma bitfields=reversedはreversed_disjoint_typesの方が良いのでは?
    ●ICCRX向けのiodefine.hで#pragma pack()に切り替えたものを最後に元に戻すことを忘れているのでは?
    ●ICCRX向けのiodefine.hの__sfrはvolatileの方がうれしい人もいるような気がする
    ●ICCRX対応の試作時の暫定コードが(FITモジュール以外のソースで)そのままになっていることを忘れないように
    ●プロジェクト(ボード)でlib\wifi\portable\renesas\XXXX\aws_wifi.cが使われていない場合はプロジェクトから削除
    ●ボード依存のSCIのチャンネル番号の指定方法の見直し(現状はボード種別番号で切り替え)
    ●ボード依存のETHERの初期化関数名の指定方法の見直し(同上)
    ●SCIのチャンネルは1つで済む筈?(複数チャンネル有効化されているのは今では単に歴史的経緯のみ?)
    ●GR-SAKURAのIスタック/Uスタック(今回未使用)/R_BSPヒープのサイズは他ボードへ展開した方が良い?

    最近気になり始めたこと(&思い出したこと) : もう少し先で対処したい分

    ●MOTファイルとMAPファイル(CC-RXでは出力を詳細に変更)をGitHubに登録してはどうだろうか?
    ●3コンパイラ対応のFITモジュールが正式リリースされた後のプロジェクト構造をどうする?
    ⇒将来e2 studio上でAmazon FreeRTOSとRX Driver Package込のプロジェクトを生成出来るようになるので任せる?
    ●各プロジェクトのマイコン型番をユーザのターゲットボードのマイコン型番に変更する簡単な方法は?
    ⇒e2 studio v7.1.0(後日インストール予定)でプロジェクトのマイコン型番変更が簡単になったようだが活用出来るか?
    ●各プロジェクトのボード名をユーザのターゲットボードのボード名に変更する簡単な方法は?
    ●試作基板のGR-ROSEはR5F565NEDxLJでしたね(でも量産基板で変わるかも? それから"_DUAL"は有りか無しか?)
    ●GR-CITRUS(RX631)+WA-MIKAN(ESP8266)対応⇒シェルティさんのGR-ROSE用ESP8266ドライバを自力移植しては?
    ●FreeRTOS+POSIX対応

    将来の探求テーマ
    ●Amazon FreeRTOSのスタック使用量の調査/考察/適正化
    ●Amazon FreeRTOSのヒープ使用量の調査/考察/適正化
    ●Amazon FreeRTOSのRAM使用量の調査/考察
    ●Amazon FreeRTOSのROMコードサイズのRXコアと他CPUコア(Cortex-M4/MIPS microAptiv/Xtensa LX6)とでの比較
    Amazon FreeRTOSの各プロジェクトでのコンパイラ最適化レベルでRXコアと他CPUコアのCoreMark/MHzを比較すると?
    更にプリエンプションを禁止した状態と許可した状態でそれぞれRXコアと他CPUコアのCoreMark/MHzを比較すると?
    ●Amazon FreeRTOSでRXマイコンのMPU(メモリプロテクションユニット)を有効にするには?
    ●Amazon FreeRTOSのソースのCC-RXによるMISRA-C 2012ルールチェック

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

    私の今の進捗です。なお、Amazon本家がv1.4.2→v1.4.3になっていましたので、これから差分の取り込みを行います。今回のリリースのメインはXilinx Zynq-7000 based MicroZed Industrial IoT Bundleというボードが追加されたことですかね。あと、mbed TLSライブラリが2.8.0→2.13.1になったことと、PKCS #11ライブラリ(まだルネサスボードへの移植済みソースは無い)の抜本的変更があったことも、大きなところのようです。(といっても、私には以下の変更履歴の内容はチンプンカンプンだったりしますが、、、)

    Change Log for Amazon FreeRTOS
    github.com/aws/amazon-freertos/blob/86a1c8a/CHANGELOG.md

    ちなみに、v1.4.3のフォルダツリーをチラ見していて気付いたのですが、.projectファイルや.cprojectファイルのAFQP適合チェックツール、ソースコードのスタイル(Hungarian Notation)チェックツール、gitのhooksなどもありました。そして、AFQP適合チェックでは"aws_demos"以外のプロジェクト名は不可にしていました。(以前、AFQPのドキュメントを読んだ時には不可だとは読み取れませんでしたが、、、) 認証を受けるプロジェクトに関しては(その時までには)"aws_demos"に戻しておく必要がありそうです。

    AFQP適合チェックツール
    github.com/aws/amazon-freertos/tree/86a1c8a/tools/checks/afqp/afqp_check

    Hungarian Notationチェックツール
    github.com/aws/amazon-freertos/tree/86a1c8a/tools/checks/style/hn_check

    Git-Hooks
    github.com/aws/amazon-freertos/tree/86a1c8a/tools/git/hooks

    以下、進捗です。(は新規項目もしくは状況変化項目です。)

    作業中
    コンパイル時のワーニングを減らす(FITモジュールのソースの修正もあります)
    ⇒来週の中頃までには作業を終了させます(区切りを付けます)
    Amazon本家のv1.4.2→v1.4.3の差分の取り込み
    ⇒チラ見中です

    来週中頃~再来週初めの作業
    ●GNURXのリンク時のワーニングを取る
    ●GR-SAKURAのe2 studioプロジェクトでインクルードファイルに関してINDEXERエラーが出ているのを何とかしたい
    ●demos\renesas\XXX\common\config_file\*.hの#define等の順序をAmazon FreeRTOS本家の*.hに合わせる
    ●ビルド前ステップのバッチファイルの見直し(make.exeが見付かりません問題の緩和策も)

    コミット済みだがデバッグ未着手だった件の作業(来週中頃~再来週初め)
    ●スタートアップ処理でC++のコンストラクタを呼び出し可能にした(GNURXで使われていた#ifdef CPPAPP~#endifで括った)
    ●R_BSPのsbrk()はCC-RXとGNURXで有効になっているけれどもGNURXで呼び出されることがあるかどうか確認する

    最近気になり始めたこと : ツールで対処して貰わないと駄目そうな分
    ●ワーニングレベルを上げるとvoid R_CGC_Create_UserInit();のような引数void無し関数宣言/関数本体で警告が出る(CG)
    ●ワーニングレベルを上げるとvoid R_SCI_PinSet_SCI0();のような引数void無し関数宣言/関数本体で警告が出る(FIT)

    最近気になり始めたこと(&思い出したこと) : RX71M-RSK, RX64M-RSK, RX63N-RSKの作業の前に対処したい分

    有線LAN版のsecure socketsのポーティングソースをAmazon FreeRTOSが事前準備しているフォルダ下のソースに変更
    entropy_hardware_poll.cのmbedtls_hardware_poll()が取り敢えず版のような印象なので直してみる
    ●ICCRX向けのiodefine.hの#pragma bitfields=reversedはreversed_disjoint_typesの方が良いのでは?
    ●ICCRX向けのiodefine.hで#pragma pack()に切り替えたものを最後に元に戻すことを忘れているのでは?
    ●ICCRX向けのiodefine.hの__sfrはvolatileの方がうれしい人もいるような気がする
    ●ICCRX対応の試作時の暫定コードが(FITモジュール以外のソースで)そのままになっていることを忘れないように
    ●プロジェクト(ボード)でlib\wifi\portable\renesas\XXXX\aws_wifi.cが使われていない場合はプロジェクトから削除
    ●ボード依存のSCIのチャンネル番号の指定方法の見直し(現状はボード種別番号で切り替え)
    ●ボード依存のETHERの初期化関数名の指定方法の見直し(同上)
    ●SCIのチャンネルは1つで済む筈?(複数チャンネル有効化されているのは今では単に歴史的経緯のみ?)
    ●GR-SAKURAのIスタック/Uスタック(今回未使用)/R_BSPヒープのサイズは他ボードへ展開した方が良い?

    最近気になり始めたこと(&思い出したこと) : もう少し先で対処したい分

    ●MOTファイルとMAPファイル(CC-RXでは出力を詳細に変更)をGitHubに登録してはどうだろうか?
    ●3コンパイラ対応のFITモジュールが正式リリースされた後のプロジェクト構造をどうする?
    ⇒将来e2 studio上でAmazon FreeRTOSとRX Driver Package込のプロジェクトを生成出来るようになるので任せる?
    ●各プロジェクトのマイコン型番をユーザのターゲットボードのマイコン型番に変更する簡単な方法は?
    ⇒e2 studio v7.1.0(後日インストール予定)でプロジェクトのマイコン型番変更が簡単になったようだが活用出来るか?
    ●各プロジェクトのボード名をユーザのターゲットボードのボード名に変更する簡単な方法は?
    ●試作基板のGR-ROSEはR5F565NEDxLJでしたね(でも量産基板で変わるかも? それから"_DUAL"は有りか無しか?)
    ●GR-CITRUS(RX631)+WA-MIKAN(ESP8266)対応⇒シェルティさんのGR-ROSE用ESP8266ドライバを自力移植しては?
    ●FreeRTOS+POSIX対応

    将来の探求テーマ
    ●Amazon FreeRTOSのスタック使用量の調査/考察/適正化
    ●Amazon FreeRTOSのヒープ使用量の調査/考察/適正化
    ●Amazon FreeRTOSのRAM使用量の調査/考察
    ●Amazon FreeRTOSのROMコードサイズのRXコアと他CPUコア(Cortex-M4/MIPS microAptiv/Xtensa LX6)とでの比較
    Amazon FreeRTOSの各プロジェクトでのコンパイラ最適化レベルでRXコアと他CPUコアのCoreMark/MHzを比較すると?
    更にプリエンプションを禁止した状態と許可した状態でそれぞれRXコアと他CPUコアのCoreMark/MHzを比較すると?
    ●Amazon FreeRTOSでRXマイコンのMPU(メモリプロテクションユニット)を有効にするには?
    ●Amazon FreeRTOSのソースのCC-RXによるMISRA-C 2012ルールチェック

Children
No Data