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

  • わわいです
    あらら、、FreeRTOSをフォークしてるだけだと思ったら取得してしまったのね。

    opensource.srad.jp/.../

    #ソースをDLしようとしたらクレジットカード番号が必要だったでござるの巻
  • わわいさん、こんにちは。NoMaYです。

    あっ、確かにFreeRTOS kernelのソースのCopyright (C)がAmazon.com, Incになってますね。そこまでは気付かなかったです。ところで、ソースをDLしようとしてクレジットカード番号を要求されたというURLはどこでしょうか?(ひょっとして、私、Amazon FreeRTOSのソースについて勘違いしているのかな、、、)

    github.com/aws/amazon-freertos/blob/master/lib/FreeRTOS/tasks.c

     * FreeRTOS Kernel V10.0.0
     * Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.

    sourceforge.net/p/freertos/code/HEAD/tree/trunk/FreeRTOS/Source/tasks.c

     * FreeRTOS Kernel V10.0.0
     * Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.

     

  • わわいです
    ああ、githubにもあがってたのね。。
    アマゾンのページからたぐってったら、AmazonAWSのアカウント作らんとという話で、そこでクレジットカード番号がw
    まー、入会特典で12ヶ月のAmazonAWS無料使用権がついてきてるんだけど、なにしよーか。
  • ちゅーたです。

    開発者のRichard BarryさんはAWS Teamとして活動するのかー。
    (2012年のRenesas DevConでBarryさんと会ったのは懐かしいおもひで・・)

    The FreeRTOS kernel was originally developed by Richard Barry around 2003, and was later developed and maintained by Richard's company, Real Time Engineers Ltd. FreeRTOS was a runaway success, and in 2017 Real Time Engineers Ltd. passed stewardship of the FreeRTOS project to Amazon Web Services (AWS). Richard continues to work on FreeRTOS as part of an AWS team. Read more on the AWS open source blog.

    www.freertos.org/RTOS.html
  • こんにちは。NoMaYです。

    ウェブで調べ物をしていて、Qiitaというサイトにeggmanさんという人が『FreeRTOS V9.0.0のAPI一覧』と『Amazon FreeRTOSのAPI一覧』という2つの投稿をされていることに気付きました。「FreeRTOS」と「Amazon FreeRTOS」で何が違うのか知るのに役立ちそうでしたので、リンクを投稿してみました。

    FreeRTOS V9.0.0のAPI一覧 - eggman
    qiita.com/eggman/items/8af5d3719977f71d3bbf

    Amazon FreeRTOSのAPI一覧 - eggman
    qiita.com/eggman/items/687f318cf5d391c3d47a

    [関連リンク]

    ちなみに、ルネサスさんでFreeRTOSを検索すると以下のものが見つかりました。(欧州と米国は同じ検索結果のようでした。他の地域は検索しませんでした。)

    ドキュメント検索: FreeRTOS

    日本(Japan)
    www.renesas.com/ja-jp/search/keyword-search.html#genre=document&q=FreeRTOS

    RX62Nグループ OSアダプタレイヤー: RI-600 とFreeRTOS (TM) の点滅デモンストレーション
    Mar.22.13 Rev.1.02 6.53 Mbytes R01AN0765JS0102 アプリケーションノート

    RX62Nグループ RI600とFreeRTOS (TM) 用のユーザーマニュアルおよびAPI 仕様
    Mar.05.12 Rev.1.00 4.09 Mbytes R01AN0766JS0100 アプリケーションノート

    欧州(Europe/Middle East/Africa)
    www.renesas.com/en-eu/search/keyword-search.html#genre=document&q=FreeRTOS

    RZ/A1H Group Renesas Starter Kit+ FreeRTOS Sample Code for e2 studio
    Oct.14.16 Rev.1.00 574.69 Kbytes R01AN3087EG0100 Application Notes

    RX62N Group RX62N Multimedia Demonstration on RI600 & FreeRTOS (TM)
    Sep.05.12 Rev.1.02 1.48 Mbytes R01AN0764ES0102 Application Notes

    RX62N Group OS Adaptor Layer: RI-600 and FreeRTOS (TM) Blinky Demonstration
    Sep.05.12 Rev.1.02 2.58 Mbytes R01AN0765ES0102 Application Notes

    RX62N Group OS Adaptor Layer: User Manual and API Specification for RI600 & FreeRTOS (TM)
    Oct.11.11 Rev.1.00 4.04 Mbytes R01AN0766ES0100 Application Notes

    米国(America)
    www.renesas.com/en-us/search/keyword-search.html#genre=document&q=FreeRTOS

    RZ/A1H Group Renesas Starter Kit+ FreeRTOS Sample Code for e2 studio
    Oct.14.16 Rev.1.00 574.69 Kbytes R01AN3087EG0100 Application Notes

    RX62N Group RX62N Multimedia Demonstration on RI600 & FreeRTOS (TM)
    Sep.05.12 Rev.1.02 1.48 Mbytes R01AN0764ES0102 Application Notes

    RX62N Group OS Adaptor Layer: RI-600 and FreeRTOS (TM) Blinky Demonstration
    Sep.05.12 Rev.1.02 2.58 Mbytes R01AN0765ES0102 Application Notes

    RX62N Group OS Adaptor Layer: User Manual and API Specification for RI600 & FreeRTOS (TM)
    Oct.11.11 Rev.1.00 4.04 Mbytes R01AN0766ES0100 Application Notes

    サンプルプログラム検索: FreeRTOS

    日本(Japan)
    www.renesas.com/ja-jp/search/keyword-search.html#genre=sampleprogram&q=FreeRTOS

    RX231 Group Serial Transfer Demo using RX real-time OS Package
    Mar.31.17 Source, Project
    ( Firmware Integration Technology(FIT) / FreeRTOS )
    ( e2 studio project / CC-RX )

    RX64M Group Network echo server application using RX real-time OS Package
    Sep.30.16 Source, Project
    ( e2 studio project / CC-RX )

    RX62Nグループ OSアダプタレイヤー: RI-600 とFreeRTOS (TM) の点滅デモンストレーション
    Mar.22.13 C source

    欧州(Europe/Middle East/Africa)
    www.renesas.com/en-eu/search/keyword-search.html#genre=sampleprogram&q=FreeRTOS

    RX231 Group Serial Transfer Demo using RX real-time OS Package
    Mar.31.17 Source, Project
    ( Firmware Integration Technology(FIT) / FreeRTOS )
    ( e2 studio project / CC-RX )

    RZ/A1H Group Renesas Starter Kit+ FreeRTOS Sample Code for e2 studio
    Oct.14.16 Source, Project
    ( e2 / GNUARM-NONE )

    RX64M Group Network echo server application using RX real-time OS Package
    Sep.30.16 Source, Project
    ( e2 studio project / CC-RX )

    RX62N Group RX62N Multimedia Demonstration on RI600 & FreeRTOS™
    Sep.05.12 C source

    RX62N Group OS Adaptor Layer: RI-600 and FreeRTOS™ Blinky Demonstration
    Sep.05.12 C source

    米国(America)
    www.renesas.com/en-us/search/keyword-search.html#genre=sampleprogram&q=FreeRTOS

    RX231 Group Serial Transfer Demo using RX real-time OS Package
    Mar.31.17 Source, Project
    ( Firmware Integration Technology(FIT) / FreeRTOS )
    ( e2 studio project / CC-RX )

    RZ/A1H Group Renesas Starter Kit+ FreeRTOS Sample Code for e2 studio
    Oct.14.16 Source, Project
    ( e2 / GNUARM-NONE )

    RX64M Group Network echo server application using RX real-time OS Package
    Sep.30.16 Source, Project
    ( e2 studio project / CC-RX )

    RX62N Group RX62N Multimedia Demonstration on RI600 & FreeRTOS™
    Sep.05.12 C source

    RX62N Group OS Adaptor Layer: RI-600 and FreeRTOS™ Blinky Demonstration
    Sep.05.12 C source

    [追記]

    この際ですので、FreeRTOSのサイトでルネサスさんを検索してみました。

    FreeRTOSサイト内検索: Renesas
    cse.google.com/cse?cx=partner-pub-1432383574659805%3Az8fglgeedjr&q=Renesas
     

  • こんにちは。NoMaYです。

    FreeRTOSのサイトを見ていて、Amazon FreeRTOSでサポートされているボードが以下の半導体メーカのものであった理由に気付きました。そもそものFreeRTOSの「パートナー」さんだったからですね、、、

    Microchip Technology Incorporated
    Curiosity PIC32MZ EF Development Board (Coming Soon)

    NXP Semiconductors
    LPC54018 IoT Module

    STMicroelectronics
    STM32L4 Discovery Kit IoT Node

    Texas Instruments
    SimpleLink™ Wi-Fi® CC3220SF Wireless Microcontroller LaunchPad™ Development Kit

    www.freertos.org/FreeRTOS-V10.html

  • NoMaYさん

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

    いつも貴重な情報を展開いただき、ありがとうございます。
    Amazon FreeRTOS、すごいですね。

    私はSTのAmazon FreeRTOS対応ボードを注文してみました。私のふゆやすみの工作課題ですね。

    ルネサス製品だと、RXマイコンがちょうどリアルタイムOSが対象とする性能レンジですね。
    こうしてみると、RXマイコンは少し世界から取り残されている感がしてしまいます。
    FreeRTOS自体はRXマイコンをサポートしていますので、ちょっとソフト開発してあげれば
    RXマイコン上でAmazon FreeRTOSを動かすことは可能だと思います。

    FreeRTOSは1年くらい前に、FreeRTOS+TCPというネットワークスタックを研究成果としてリリースしておりまして、
    思えばそれがAmazon FreeRTOSの布石だったように思います。

    IoT向けの規格をOSI参照モデルに当てはめて考えてみると、
    1-7層までオールインワンでAmazon FreeRTOSが提供できるようになりました。
    これはとてもすごいことだと思います。
    これが普及すれば、7層までIoT機器のデファクトスタンダード化待ったなしの状況ですね。

    1=physical: Ethernet (defacto standard), Wireless-LAN, BLE5.0, maybe LoRa
    2=datalink: IEEE 802.xx (defacto standard)
    3=network: Internet Protocol (defacto standard)
    4=transport: Transmission Control Protocol or User Datagram Protocol (defacto standard)
    5=session: Socket API implementation (defacto standard)
    6=presentation: SSL/TLS implementation (defacto standard)
    7=application: AWS(MQTT) for IoT (defacto standard???)

    6層のSSL/TLS実装のためにARMはソフトウェアベンダを買収してmbed TLSを作りました。
    またARMコアのセキュリティ性向上のためCryptoCellという暗号ハードウェアIPも買ってきています。
    これらを統合してTrustZoneという新しいセキュリティソフトウェアプラットフォームを提唱してきていますね。
    ARMはどうやらCPU技術の次はセキュリティ技術で世界を囲い込む戦略のように見えます。

    今6層のmbed TLSの暗号プリミティブ実装はソフトウェア暗号ライブラリのようですが、
    これがどのように今後暗号ハードウェアIP活用のものに置き換わっていくのか、
    要注目であると思います。

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

    SEGGERによるcross-platform Embedded Studioとthe market leading J-LinkでのAmazon FreeRTOSデバッグ環境だそうです。このスレッドの最初の投稿に書いたAmazon FreeRTOSのGitHubのソースに対して、以下のウェブページのSEGGERのパッケージのソースでは以下のフォルダが追加されていました。(デモプログラムのソースの修正も若干ありました。) SEGGERはFreeRTOSの「パートナー」では無かったので自前でやった、というところでしょうか、、、

    amazon-freertos-es-1.0.0\amazon-freertos-1.0.0\demos\nxp\lpc54018_iot_module\es\
    amazon-freertos-es-1.0.0\amazon-freertos-1.0.0\demos\nxp\lpc54018_iot_module\common\application_code\segger\
    amazon-freertos-es-1.0.0\amazon-freertos-1.0.0\lib\third_party\mcu_vendor\nxp\LPC54018\es\

    amazon-freertos-es-1.0.0\amazon-freertos-1.0.0\demos\st\stm32l475_discovery\es\
    amazon-freertos-es-1.0.0\amazon-freertos-1.0.0\demos\st\stm32l475_discovery\common\application_code\segger\
    amazon-freertos-es-1.0.0\amazon-freertos-1.0.0\lib\third_party\mcu_vendor\st\stm32l475_discovery\es\

    SEGGER Support for Amazon Web Services and Amazon FreeRTOS
    www.segger.com/aws/


    ソースの比較結果


    ちなみに、Amazon FreeRTOSのGitHubのソース(およびSEGGERのパッケージのソース)には、以下のフォルダがありましたので、自前でボードを追加する時は同様にやって下さい、ということのようです、、、

    amazon-freertos-1.0.0\demos\vendor\
    amazon-freertos-1.0.0\lib\third_party\mcu_vendor\vendor\
    amazon-freertos-1.0.0\lib\wifi\portable\vendor\                [2017/12/12 追記]
    amazon-freertos-1.0.0\lib\secure_sockets\portable\vendor\           [2017/12/19 追記]
    amazon-freertos-1.0.0\lib\pkcs11\portable\vendor\         (未追加?) [2017/12/19 追記]







    なお、以下のフォルダにはEclipseでお馴染みの.projectファイルと.cprojectファイルがありました。

    amazon-freertos-1.0.0\demos\st\stm32l475_discovery\ac6\
    amazon-freertos-1.0.0\demos\ti\cc3220_launchpad\ccs\




  • こんにちは。NoMaYです。

    1つ前の投稿の最後でAmazon FreeRTOSのGitHubのソースのDemoフォルダの中を少し見てみたのですが、このスレッドの最初の投稿に書いたsourceforge.netのFreeRTOS kernelのソースのDemoフォルダの中も少し見てみました。



    なお、FreeRTOS kernelのルネサスマイコンでのDemoプログラムは、上の画面コピーのものだけでは無く、全部で以下のものがあるようです。

    www.freertos.org/a00090.html#RENESAS




  • こんにちは。NoMaYです。

    Amazon FreeRTOSのDemoプロジェクトがEclipseの仮想フォルダやリンクされたフォルダという機能を使ったプロジェクトのようでしたので、以下の手順でDemoプロジェクトがどんな感じのものであるか分かるようなe2 studio (v6.1.0)のプロジェクトを無理矢理作ってみました。(ちなみに、まだ全くコンパイル出来ません。([追記] 2017/12/20 「全くコンパイル出来なかった」と言うよりは「全くコンパイルが行われなかった」と言うべきだった気がします。) 後日、プロジェクトの設定を詰めてみようかとは思っています。もっとも、MCU依存部やボード依存部を作らないとリンク出来ませんが、、、)

    aws_demos_renesas_rx_mcu_experiment_20171210.zip
    内容:
    .project
    .cproject
    aws_demos.mtpj
    aws_demos.rcpc
    aws_demos.rcpe

    (1) 以下のフォルダを(下位階層も含めて)追加する

    作成するフォルダ: (下位階層については下の方の画面コピーを参照して下さい)
    amazon-freertos-1.0.0\demos\renesas\
    amazon-freertos-1.0.0\lib\third_party\mcu_vendor\renesas\

    (2) 以下のファイルを(1)で追加した以下のフォルダにコピーする

    コピー元のファイル:
    amazon-freertos-1.0.0\demos\st\stm32l475_discovery\ac6\.project
    FreeRTOSv10.0.0\FreeRTOS\Demo\RX200_RX231-RSK_Renesas_e2studio\.cproject
    FreeRTOSv10.0.0\FreeRTOS\Demo\RX200_RX231-RSK_Renesas_e2studio\.info

    コピー先のフォルダ:
    amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6\

    (3) コピーした.projectファイルをエディタで変更する

    変更前: (該当箇所のみ記載します)

        <natures>
            <nature>org.eclipse.cdt.core.cnature</nature>
            <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
            <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
            <nature>fr.ac6.mcu.ide.core.MCUProjectNature</nature>
        </natures>

    変更後: (該当箇所のみ記載します)

        <natures>
            <nature>org.eclipse.cdt.core.cnature</nature>
            <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
            <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
            <nature>com.renesas.cdt.core.kpitcnature</nature>
            <nature>com.renesas.cdt.core.kpitccnature</nature>
        </natures>

    (4) e2 studioを起動してワークスペースフォルダとして以下のフォルダを指定する

    amazon-freertos-1.0.0\demos\renesas\

    (5) e2 studioが起動したら以下のプロジェクトを「既存プロジェクトをワークスペースへ」でインポートする

    aws_demos(親フォルダ\amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6)

    (6) インポートしたaws_demosプロジェクトを「古い e2studio プロジェクトを更新...」で更新する

    これにより自動的に削除されるファイル:
    amazon-freertos-1.0.0\demos\renesas\rx231-rsk\e2studio6\.info

    以下、画面コピーです。





    なお、この際だと思い、e2 studioでCS+向けルネサス共通プロジェクトファイル(rcpc)をエクスポートして、CS+ for CC V6.00.00(2017/10/05版)でインポートしてみましたが、プロジェクトの構造が変わってしまっていました。(後日、調査してみようとは思っています。こちらも、まだ全くコンパイル出来ません。([追記] 2017/12/20 こちらは「全くコンパイルが行われなかった」訳では無くて「全くコンパイル出来なかった」の方です。) もちろん、MCU依存部やボード依存部を作らないとリンク出来ませんが、、、)



    ちなみに、プロジェクトの設定を詰めてコンパイル出来るようになったら、以下のボードなどで使われているRX65NへMCUを変更することも出来るだろうと考えています。

    RX65N Envision Kit (RS Componentsでも販売開始されたようです。(私が注文したものは週末にMouserから届きました。))
    www.renesas.com/ja-jp/products/software-tools/boards-and-kits/renesas-promotion-boards/rx65n-envision-kit.html

    RX65N Wi-Fi Cloud Connectivity Kit (今のところ日本からは購入出来ないようです。技適の関係でしょうか?将来は?)
    www.renesas.com/en-us/solutions/key-technology/connectivity/wi-fi/rx65n-wi-fi-kit.html

    [追記]

    そういえば、mbed OSとは異なり、C言語ベースですね。(mbed OSはC++言語ベースでした。)