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に変わったようです。

  • こんにちは。NoMaYです。

    RXマイコンの話では無くRAマイコンの話ですが、FreeRTOS上で、Microsoft Azure、Google Cloud Platform(GCP)にも繋がるようになったのかなぁ、、、(そういう風に読めますよね、、、)

    Arm Cortex-M搭載32ビットマイコンRAファミリに対応したフレキシブル・ソフトウェア・パッケージのメジャーアップデート版をリリース
    ~セキュリティ、コネクティビティ、モータ制御、機械学習機能を強化~
    www.renesas.com/jp/ja/about/press-center/news/2020/news20200423.html

    FSPにはFreeRTOSが標準実装されていますが、要件に応じて他のRTOSやミドルウェアに置き換えて実装することも可能です。


    FSP v1.0には、チップからクラウド(chip-to-cloud)への接続を実現する新たなコネクティビティおよびセキュリティ機能が追加されています。公開したソースコードには、アマゾン ウェブ サービス(AWS)、Microsoft Azure、Google Cloud Platform(GCP)、その他のサードパーティ製MQTTブローカーなど、主要なクラウドプロバイダとのセキュア接続に対応するミドルウェアスタックが含まれています。


    [追記]

    TCP/IPスタックはAmazon FreeRTOSのTCP/IPスタックなのかな?そうだとすれば、クラウド関係のミドルウェアをRXマイコンに移植することも非現実的なほど困難という訳では無くなったかも、、、 そういえば、RXマイコンでMicrosoft Azureに繋げる話は既にアナウンスされてますね、、、Google Cloud Platform(GCP)もやるのかな、、、

  • こんにちは。NoMaYです。

    RX65N Cloud Kitに同梱されていたSilex SX-ULPGN搭載Pmod拡張ボードが単体販売されるのかも知れません、、、

    Wi-Fi Pmod拡張ボード
    802.11b/g/n 2.4G Wi-Fi Pmod拡張ボード
    www.renesas.com/us/ja/products/software-tools/boards-and-kits/eval-kits/wi-fi-pmod-expansion-board.html

    このWi-Fi Pmod拡張ボードを使うと、ルネサスの各種MCUを使用した無線接続デバイスを素早く試作できます。このボードには、Qualcomm製QCA4010(SoC)を利用した、シングルバンド2.4GHz 802.11nのSX-ULPGNモジュールが搭載されています。

  • こんにちは。NoMaYです。

    TOPPERSが面白そうなことをやるようです。(詳細不明)

    「ローエンドIoTデバイス向けハイパーバイザiSotEE」
    李 奕驍(名古屋大学)
    概要:リソース等の制約が厳しいローエンドIoTデバイス向けSoCの殆どには、TrustZone等のハードウェア仮想化支援機能がありません。 iSotEEは、HRP3の保護機能を活用し、そのようなSoCも対応できるハイパーバイザ・ミドルウェアです。Renesas RX65Nのボード上、HRP3のユーザドメイン内で Amazon FreeRTOSを動かす事例について説明します。

    TOPPERSカンファレンス2020開催のご案内
    www.toppers.jp/conference2020.html
    カンファレンスプログラム
    [午後の部] 会場:Zoom(予定)
    15:10〜16:00 技術紹介
    その中の2番目(05/19時点)4番目(06/07時点)

    [追記]

    Amazon FreeRTOSドメイン内で、一日一回、Amazon FreeRTOSを再スタートさせる、なんてことが出来たら面白い?プログラム乗っ取りの脆弱性対策にも使える?

  • こんにちは。NoMaYです。

    TOPPERSカンファレンス2020開催のご案内ページは随時更新されていたようで、今日気付いたら、以下の内容が追加されていました。(面白そう、ですけれども、内容の予測はつきません。)

    「TzmCFI : ARMv8-M TrustZoneを用いた制御フロー保護システム」
    河田智明(名古屋大学 大学院情報学研究科 情報システム学専攻)
    概要:
    制御フローに対する攻撃をコンパイラが自動的に実行時検査を挿入 することで未然に防ぐ手法が知られている。情報セキュリティ要求の 高まりから近年ではデスクトップ・モバイルデバイスを中心として広く 採用されているが、組込みシステム向けの実装はまだ一般的ではない。 本講演ではTrustZone-Mを用いることで小規模組込みシステム上でこれを 実現したTZmCFIについて紹介する。

    TOPPERSカンファレンス2020開催のご案内
    www.toppers.jp/conference2020.html
    カンファレンスプログラム
    [午後の部] 会場:Zoom(予定)
    15:10〜16:00 技術紹介
    その中の2番目

    [追記]

    Renesasコンパイラの不正な間接関数呼び出し検出機能と基本的な部分は同じものなのかな?

    Google検索: コンパイラ OR コンパイル CFI
    www.google.com/search?q=コンパイラ+OR+コンパイル+CFI


    [追記2]

    上の画面コピーの最下段の項の文面からすると、Renesasコンパイラのスタック破壊検出機能も含まれるのかな?

    Google検索: Renesas+コンパイラ+OR+コンパイル+スタック破壊検出
    www.google.com/search?q=Renesas+コンパイラ+OR+コンパイル+スタック破壊検出
     
    [追記3]

    こんなのがRenesasコンパイラのFAQにありました。

    FAQ 3000006: スタック破壊検出機能のマルチタスクでの使用(CC-RL)
    ja.na4.teamsupport.com/knowledgeBase/17796572

    Q : 質問

    RL78コンパイラ CC-RL とRL78リアルタイムOS RI78V4 を使用しています。professional版の「スタック破壊検出機能」はマルチタスクでも使用できるのでしょうか?

    A : 回答

    スタック破壊検出コードは、次のようになります。
    (1) 関数の入口で、ローカル変数領域の直前(0xFFFF番地に向かう方向)に2バイトの領域を確保し、その領域にnumで指定した値を格納します。
    (2) 関数の出口で、numを格納した2バイトの領域が書き換わっていないことをチェックします。
    (3) (2)で書き換わっている場合には、スタックが破壊されたとして__stack_chk_fail関数を呼び出します。
    マルチタスクでタスクが切り替わって、そのあとに、元に戻ってきた際には、上記の(1)の値と上記の(2)でチェックする関係は壊れないので、使用することができます。
    ただし、次のいずれかが指定された関数は、スタック破壊を検出することはできませんので、リアルタイムOSの割り込みハンドラやタスクには適用できません。
     #pragma inline,inlineキーワード,#pragma inline_asm,
     #pragma no_stack_protector,#pragma rtos_interrupt,
     #pragma rtos_task


  • NoMaYさん

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

    Amazon FreeRTOS関係、いくつか新鮮な情報持ってきました。

    ①RX65NのOTA関係のプルリクエストがAWSにより全てマージされました
     #1: github.com/.../2246
     #2: github.com/.../2236
     #3: github.com/.../2237
     #4: github.com/.../2238
     #5: github.com/.../2239
    ②TSIPドライバ(バイナリ版)をウェブ公開しました
     www.renesas.com/.../trusted-secure-ip-driver.html
    ③安価に入手可能なTSIP搭載RX72Nを用いた『RX72N Envision Kit』のGitHubのwikiに実験手引書を作りました
     github.com/.../1-Trusted-Secure-IPドライバ
    ④Amazon FreeRTOS本家にTSIPドライバのFITモジュールをプルリクエスト予定(先ずは乱数生成のみ活用)です

    以上です
  • こんにちは。NoMaYです。

    TSIPといえば、wolfSSLのブログにRX72N Envision Kitでのベンチマーク結果が出ていました。

    Renesas RX72N Envision Kit Supported!
    www.wolfssl.com/renesas-rx72n-envision-kit-supported/

    Board and Environment Support

    Board: Renesas RX72N Envision Kit (R5F572NNHxFB)
    IDE: Renesas e2Studio v7.8.0
    Compiler: CCRX Tool Chain V.3.02.00
    TSIP: V.1.09

    Benchmarks

    Here are the benchmark results gathered during testing, comparing algorithm performance with and without TSIP.

    ...略...

  • こんにちは。NoMaYです。

    TOPPERSからこんなソースが公開されていました。(Cortex-M33向けですけれど。)

    SafeG-M
    www.toppers.jp/safeg-m.html

    SafeG-Mとは

    SafeG-MはSafeGと同様の機能を ARMv8-M(Cortex-M33)向けに実装したデュアルOSモニタです。TOPPERS ASP3カーネルを保護しつつ、ゲストOSとしてFreeRTOS等を安全に利用することができます。実装にはARMv8-Mより導入された TrustZone機能を利用しています。

    TrustZoneは、プロセッサの実行状態をセキュア状態とノンセキュア状態に分離する機能です。セキュア状態は従来と同様に全てのリソースにアクセス可能ですが、ノンセキュア状態では実行できる操作が制限されます。


    SafeG-Mを利用する利点

    TOPPERSのRTOSカーネルは信頼性が高く、機器制御等におけるリアルタイム性を保証できます。しかしながらカーネルの提供する機能は最小限であり、ネットワーク通信等を実装することは容易ではありません。

    一方で、FreeRTOSやmbed OSといったロイヤリティフリーのRTOSが提供するエコシステムは機能豊富であり、ネットワーク通信等であっても簡単に実現することができます。しかしその豊富な機能性のため信頼性の確保が比較的難しいこともあります。

    以上のように、TOPPERS OSとその他RTOSは対照的な特徴を持っています。これら2種類のOSを同時に実行することで、それぞれの弱点を補完することが可能になります。すなわち、リアルタイム性を要求される用途にはTOPPERS OS、複雑な操作を要求される用途にはその他RTOSを割り当てることで両者のメリットを得られます。


  • NoMaYさん

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

    新鮮な情報ありがとうございます。
    wolfSSLさんとはいつも相談させていただいております。
    RX72N Envision KitのTSIPのページにwolfSSLさんのベンチマーク結果へのリンクも貼っておきました。
    github.com/.../1-Trusted-Secure-IPドライバ

    それからTrustZoneについてはルネサスも対応を進めています。#あまりここでは書けないですが私もRAファミリのソフト開発絡んでます
    www.renesas.com/.../news20191008.html

    以上です
  • こんにちは。NoMaYです。

    かなり前に「Amazon FreeRTOSのソースのCC-RXによるMISRA-C 2012ルールチェック」などは将来の探求テーマとして面白いかも知れないと思っていたのですが、AmazonさんのAniruddha Kanhereという方がFreeRTOS-Plus-TCPというモジュールに関して今まさにMISRA-C 2012対応をされていますね。FreeRTOS-kernelの次のバージョンはv10.3.2[訂正2020/09/12]v10.4.0になるようですが、リリースされたらv10.3.1とソース比較してみると面白いかも知れないと思いました。ちなみに、SynopsysのCoverityというツールでMISRA-Cルールチェックを行っているようです。

    Aniruddha Kanhereさんのコミット履歴
    github.com/FreeRTOS/FreeRTOS/commits?author=AniruddhaKanhere

    Aniruddha Kanhereさんのプルリクエスト履歴
    github.com/FreeRTOS/FreeRTOS/pulls?q=is:pr+author:AniruddhaKanhere

    静的解析 ( SAST ) Coverity コベリティ | シノプシス - Synopsys
    www.synopsys.com/ja-jp/software-integrity/security-testing/static-analysis-sast.html

    Google検索: Synopsys Coverity
    www.google.com/search?q=Synopsys+Coverity
     

  • NoMaYさん

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

    さすがはAWSですね。コードに対して真摯な姿勢が感じられます。
    私もコード品質向上のため静的解析ツールの導入の検討はするのですが、
    全体適用(社内ルール化)をしようとしたときに費用対効果の話が必ず出てきて
    なかなか実開発への適用というところまでたどり着かないというような状況ですね。
    特にサンプルコード開発の類では、タダで使えるツールで出来る範囲で静的解析する、
    というような形になることが多いです。

    AWSのこのような活動を見るとやはり「ソフトウェア開発の根っこ」に開発資金を
    がっつり投入できる大手プラットフォーマが開発するオープンソースを使う流れになっていくのだろう、
    ということを最近大変感じております。
    Androidが流行り始めた2007年あたりもこのあたりの感覚がとても強かったです。
    今回はまだFreeRTOSにコバンザメできたので、Androidの頃よりはマシな立ち回りにはなっていると思います。

    あと、ファームアップデートに関してここ10年間くらいのシェルティの活動を
    まとめたようなアプリノートを作りました。皆様の開発の何かの足しになれば幸いです。

    ルネサス MCU におけるファームウェアアップデートの設計方針
    www.renesas.com/.../r01an5548jj0100-rx.pdf
    www.renesas.com/.../r01an5548ej0100-rx.pdf

    RX65N における Amazon Web Services を利用した FreeRTOS OTA の実現方法
    www.renesas.com/.../r01an5549jj0100-rx.pdf
    www.renesas.com/.../r01an5549ej0100-rx.pdf

    今後このアプリノートで紹介されているソフトはコア部分をFITモジュール化して、
    FIT対応しているRXマイコン全て、通信路いろいろ(SCI(UART)、USB、SDHI、Ether、etc)、インタフェース方式いろいろ(OTA、ファイルシステム、プリミティブ、etc)、フラッシュ方式いろいろ(デュアルバンク対応、外付けフラッシュ使用・未使用)で任意の組み合わせでファームアップデートできるようにします。

    あとREファミリ、RL78ファミリ、RZ/A2Mでも同じメカニズムでファームアップデートできるように調整しています。RAファミリも考えたいと思ってます。

    以上です
  • NoMaYさん、みなさま

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

    FreeRTOSのセミナ、作ってもらいました。
    www.renesas.com/.../m45.html

    e2 studioとRX65N Cloud Kitを使って実際にFreeRTOSの機能を動かしたり、
    AWSに繋いだりする一連の流れを体験できます。

    もしよろしければ参加ご検討ください。

    以上です
  • こんにちは。NoMaYです。

    Amazon FreeRTOSでは無いですけれど、またいろいろとTCP/IPスタックの脆弱性が見付かったようですね。それにより、FreeRTOS(Amazon FreeRTOSでは無い)のリポジトリで、ルネサスさん関連でも幾つかRTOSデモプログラムが削除されていました。

    公開日:2020/12/09 最終更新日:2020/12/11
    JVNVU#96491057
    複数の組み込み TCP/IP スタックにメモリ管理の不備に起因する複数の脆弱性
    jvn.jp/vu/JVNVU96491057/

    概要

    複数の組み込み TCP/IP スタックの実装に、メモリ管理の不備に起因する複数の脆弱性が発見されました。これら一連の脆弱性は「AMNESIA:33」と呼称されています。

    影響を受けるシステム

    組み込み TCP/IP スタックとして以下を使用している製品
    ・uIP Version 1.0 およびそれ以前
        uIP は開発が終了しています
    ・Contiki-OS (uIP)  Version 3.0 およびそれ以前
        Contiki-OS は開発が終了しています
    ・Contiki-NG (uIP) Version 4.5 およびそれ以前
    ・picoTCP Version 1.7.0 およびそれ以前
        picoTCP は開発が終了しています
    ・picoTCP-NG Version 2.0.0 およびそれ以前
    ・FNET Version 4.6.3
    ・Nut/Net Version 5.1 およびそれ以前


    技術的な詳細も以下のウェブサイトのPDFドキュメントに書かれているようです。

    THE GLOBAL IMPACT OF AMNESIA:33
    www.forescout.com/research-labs/amnesia33/

    AMNESIA:33
    How TCP/IP Stacks Breed Critical Vulnerabilities in IoT, OT and IT Devices
    www.forescout.com/company/resources/amnesia33-how-tcp-ip-stacks-breed-critical-vulnerabilities-in-iot-ot-and-it-devices/

    なお、FreeRTOS(Amazon FreeRTOSでは無い)のリポジトリで、ルネサスさん関連でも以下のRTOSデモプログラムが削除されていました。(他のベンダのものは省略)

    Remove uIP TCP/IP stack and related demos (#467)
    github.com/FreeRTOS/FreeRTOS/pull/467

    ./FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/
    ./FreeRTOS/Demo/RX600_RX62N-RSK_IAR/
    ./FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/
    ./FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/
    ./FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/
    ./FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/
    ./FreeRTOS/Demo/RX600_RX62N-RDK_IAR/

    ./FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/


  • こんにちは。NoMaYです。

    RL78/G14 Fast Prototyping Board + Wi-Fi module (SX-ULPGN(Silex Technology製)) でAWSに接続するサンプルプログラムが公開されていますね。

    RL78/G14 Fast Prototyping Board 製品ページ
    www.renesas.com/jp/ja/products/microcontrollers-microprocessors/rl78-low-power-8-16-bit-mcus/rl78g14-fast-prototyping-board-rl78g14-fast-prototyping-board

    RL78/G14 Fast Prototyping Board でFreeRTOS を用いて Amazon Web Servicesに接続する方法

    RL78/G14 Fast Prototyping Board と Wi-Fi Pmod拡張ボードの組み合わせで動作可能なWi-Fi用無線通信ソフトウェアです。 RL78/G14にAmazon FreeRTOSを実装し、Wi-Fi経由でMQTT プロトコルを使用してAmazon Web Services (AWS)と通信できます。


    PDFドキュメント
    www.renesas.com/jp/ja/document/apn/rl78g14-group-connecting-amazon-web-services-using-freertos-rl78g14-fast-prototyping-board?language=ja

    ZIPファイルダウンロード
    www.renesas.com/jp/ja/document/scd/rl78g14-group-connecting-amazon-web-services-using-freertos-rl78g14-fast-prototyping-board-code


    残るはRH850でAWS接続でしょうか、、、GitHub上に幾つかFreeRTOSのRH850ポートが上がっていますね、、、

    CC-RH + CS+ 版
    github.com/dinguluer/Renesas

    GNUV850 + CMake + Ninja 版
    github.com/mikisama/FreeRTOS_RH850_GCC

    GitHub検索: RH850
    github.com/search?q=RH850
     

  • NoMaYさん

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

    情報ありがとうございます。

    脆弱性はかなり多くの方がセンシティブになってきたと感じています。以下のようにセキュリティIP内蔵RXマイコンのソリューションなども作っている身としては業界全体のセキュリティ実装に対する意識が向上することを期待していたりしますが、一方で量産製品を作られる皆さまにおいてはセキュリティ強化とコスト低減のトレードオフとなろうかとも思いたいへん悩ましい課題とも感じます。

    github.com/.../1-Trusted-Secure-IPドライバ

    またRL78のAmazon FreeRTOSについても情報展開いただきありがとうございます。こちらも私が仕掛けさせていただきました。RL78 + WiFiというとシステム全体の消費電流およびコストについてWiFiモジュールが大半を占めることになり、あまり最適な構成とは言えませんが、今後無線が、CatM1や802.11ahといったIoT向けに無線規格に遷移していくにあたっての布石としてRL78にAmazon FreeRTOSを移植しました。先にWiFiでソリューションを作っておくことで、あとでCatM1や802.11ahへの展開が非常に容易になるためです。

    シェルティ自身が、「小型・低消費のインターネット対応無線機を作りたい」という動機でルネサスに居ついていたりします。もっといえばREファミリで電池レスのインターネット対応無線機を作れないものかとかも考えてます。

    以上です

  • こんにちは。NoMaYです。

    Google Cloud は Mbed OS への取り組みを強化するのかな、、、

    Accelerating IoT device deployment with Google Cloud and Arm Mbed OS
    cloud.google.com/blog/products/iot-devices/mbed-os-now-integrates-with-google-cloud

    Google Cloud to join the next Mbed OS Tech Forum
    os.mbed.com/blog/entry/Google-Cloud-to-join-the-next-Mbed-OS-Te/