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さん

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

    ちょっと気になってROM/RAMサイズを測ってみたところ、
    ROM200KB、RAM80KBくらい必要な感じでした。

    Amazon FreeRTOSの「ハードウェア仕様に関する最低要件」のところに以下記述もあります。
    aws.amazon.com/.../

    ---引用
    Amazon FreeRTOS は、25 MHz 以上の処理速度と 64 KB 以上の RAM を備えたマイクロコントローラ向けに最適化されています (TLS を含む利用可能なすべてのライブラリがアプリケーションマイクロコントローラ上で実行されていることを想定した場合)。通信および暗号化のスタック (MQTT を除く) がネットワーキングプロセッサにオフロードされる場合、マイクロコントローラには 10 MHz の処理速度と 16 KB の RAM が必要になります。
    ---

    純正コンパイラだと128KBでリンク制限がかかるので、
    実験をするにも有償版購入が必要ですね。
    せっかくOSがフリーなのに、コンパイラがフリーじゃなかったら辻褄が合わないので、
    計画の最終段ではGCCでの動作確認もしようかと思います。

    それから、最終段ではターゲットボード(RX130、RX231、RX65N)で
    Amazon FreeRTOSを動かそうかなと考えているのですが、
    RX130、RX231はAmazon FreeRTOSのTLS部分までマイコンで動かすと
    RAMが足らないので、RX130、RX231用のコンフィグレーションではネットワーク機能は
    WIFIモジュール側にオフロードした状態(マイコンはMQTTだけ処理)での実装になりますね。
    そちらも計画に加えてみます。

    「ROM200KB、RAM80KBくらい」というのはネットワークに直接つなぐデバイスの
    最低ラインというのはまあイメージ通りではあります。

    実はルネサスTCP/IPも私がコードを書いたのですが、
    ルネサスTCP/IPはRXマイコン導入時のEtherコントローラ評価用の側面が強く
    SSL/TLS実装までは用意していません。標準化を捨てて最小限実装にして
    対応する暗号アルゴリズムを極小にしていけばもう少し小さいRAMでも
    動かせると思っています。ベアメタル向けにルネサスTCP/IP用の
    SSL/TLS実装を書いてみるのも悪くないかなと思っています。

    --------------------------------------------------------------------------
    ■進捗
    --------------------------------------------------------------------------
    RX65N Envision Kit、RX65N RSK(2MB版/暗号器あり品)をターゲットにコードメンテを維持します。
    下記 Amazon FreeRTOS 1.2.x は適宜最新コードに更新していきます。
    2018/03/17時点での適用コードは 1.2.2 です。

    ①ルネサスTCP/IPをターゲットで動作させる(Etherの動作確認)
    ②SDIO無線LANを動作確認した時期のFreeRTOS 8.2.2をターゲットで動作させる
    ③ルネサスのFreeRTOSパッケージ、9.0.0をターゲットで動作させる
    ④Amazon FreeRTOS 1.2.xのFreeRTOS部分をターゲットで動作させる
    ⑤Amazon FreeRTOS 1.2.xのFreeRTOS+TCP部分をターゲットで動作させる
    ⑥Amazon FreeRTOS 1.2.xのmbed TLS部分をターゲットで動作させる
    ⑦Amazon FreeRTOS 1.2.xのMQTT部分をターゲットで動作させる(AWSへの接続実験)
    ⑧Amazon FreeRTOS 1.2.xのFreeRTOS+TCP部分のネットワーク層の結合部分を工夫して、
     (1)Ether、(2)SPI接続無線LANモジュール、(3)SDIO無線LANモジュールの3種類を
     切り替えられるようにする ★いまここ@シェルティ
    ⑨Amazon FreeRTOS 1.2.xのmbed TLS部分の暗号処理プリミティブの
     ソフトウェア実装(AESとかRSAとか)をRX65N内蔵暗号器を使った
     ハードウェア実装に置き換える ★いまここ@協力会社
    ⑩Ether層のゼロコピーに対応する
    ⑪Amazon FreeRTOS本家環境にマージし、Amazon FreeRTOS本家コードへの追従を簡単にできるようにする
    ⑫Amazon FreeRTOS のGitのforkに登録する
    ⑬Amazon FreeRTOS のCertificationを受験し合格しGitの本家に登録する
     aws.amazon.com/.../
    ⑭GCC対応
    ⑮Amazon FreeRTOSの最低ハードウェア要件であるRAM64KBを満たさないRXマイコンでは
     SSLおよびTCP/IP機能をWIFIモジュール側にオフロードした版を用意する
    ⑯再度Amazon FreeRTOS のCertificationを受験し合格しGitの本家に登録する

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

    進捗に関しての以下の項目とreadme.txt内の協力会社という文字を見て、業務として進んでいるのだろうなぁ、とは思ってました。ちなみに、「RXマイコンのAmazon FreeRTOS対応Amazon Web Service IoT開発キットとして、一般販売を目指して」とのことですが、これはルネサスブランドで出るのだろう、と考えて良いのでしょうか?

    ・ Amazon FreeRTOS 1.2.xのmbed TLS部分の暗号処理プリミティブのソフトウェア実装(AESとかRSAとか)をRX65N内蔵暗号器を使ったハードウェア実装に置き換える
    ・ Amazon FreeRTOS のCertificationを受験し合格しGitの本家に登録する

    GCCに関しては、私、プロジェクトの作成~リンク出来るようにするところまでやってみたいです。少し前から、CC-RXのmachine.h相当のものがあればCC-RX⇔GNURXの移行を楽にすることが出来るのではないかなぁ、と思っていて、題材になりそうなものとして、これが気になっていたところでした。

    逆に、ota,pkcs11,secure_sockets,wifiの今現在は中身が空の関数になっている部分は、シェルティさん達の方でどんどん実装が進んでいると思う(協力会社の方がr_flash_rxモジュールを生成しているということはotaの実装が進んでいるからだと思うし、そうなると認証や暗号のpkcs11,secure_socketsもそうだろうし、wifiもシェルティさんの方で作業に入られた)ので、私が今後これらに関して何かするとすれば、トピックスを纏めることが出来たら投稿する、ということまでにしようと思います。(実は、怖いもの知らずで手を出してみたものの、役不足感ありまくりで、ちょっと胃がシクシクと痛かったりしていたのでした、、、)

    今は、土曜日にシェルティさんから頂いたソースの取り込みと、Amazon FreeRTOS v1.2.2のソースに追従することを、やっているところですが、私の前の投稿のBSPとCMTに関する思い付きのうち、hwsetup.cの差し替えをユーザにやって貰わなくても済んでしまう簡単な以下のやり方があったことに気付きました。

    ・ realtime_OS_pkg\hwsetupフォルダを作成して予め新しいhwsetup.cを追加しておく
    ・ realtime_OS_pkg\r_bsp_rtos\board\rskrx65n_2mb\hwsetup.cを予めビルドから除外する設定にしておく

    こうしておけば、使う人がhwsetup.cの差し替えをやる必要はなくなります。(気付いた時、どうして2週間前の作業中に気付かなかったのかと、ちょっとガックリと来ました、、、)

    以下は、そのように設定してみた時の画面コピーです。

    e2 studioの場合



    CS+の場合



    以下は、予め追加しておく新しいhwsetup.cの内容です。

    realtime_OS_pkg\hwsetup\hwsetup.c

    3364.aws_demos_renesas_rx_mcu_experiment_20180318_hwsetup_c.txt
    #include "../r_bsp_rtos/platform.h"
    #include "r_cg_macrodriver.h"
    
    static void output_ports_configure(void);
    static void interrupts_configure(void);
    static void peripheral_modules_enable(void);
    static void bsp_adc_initial_configure(void);
    
    void hardware_setup(void)
    {
        output_ports_configure();
        interrupts_configure();
        peripheral_modules_enable();
        bsp_non_existent_port_init();
        bsp_adc_initial_configure();
    }
    
    static void output_ports_configure(void)
    {
    }
    
    static void interrupts_configure(void)
    {
    }
    
    static void peripheral_modules_enable(void)
    {
        R_Systeminit();
    }
    
    static void bsp_adc_initial_configure(void)
    {
        volatile uint8_t tmp_mstp;
    
        /* Protect off. */
        SYSTEM.PRCR.WORD = 0xA502;
    
        /* Store the value of the MSTPCR. */
        tmp_mstp = MSTP(S12AD1);
    
        /* Release from the module-stop state */
        MSTP(S12AD1) = 0;
    
        /* Writing to the A/D conversion time setting register is enabled. */
        S12AD1.ADSAMPR.BYTE = 0x03;
    
        /* Sets conversion time for middle-speed for S12AD unit 1. */
        S12AD1.ADSAM.WORD = 0x0020;
    
        /* Writing to the A/D conversion time setting register is disabled. */
        S12AD1.ADSAMPR.BYTE = 0x02;
    
        /* Restore the value of the MSTPCR. */
        MSTP(S12AD1) = tmp_mstp;
    
        /* Protect on. */
        SYSTEM.PRCR.WORD = 0xA500;
    }
    


    ちなみに、新しいhwsetup.cを追加する理由は以下の2つです。

    ・ アプリケーションノートはFITの頃のものなのでBSPのhwsetup.cでCGの初期化関数が呼び出されていない
    ・ アプリケーションノートはRSK-RX65N-2Mの為にBSPのhwsetup.cでスイッチやLEDに関するポート初期化が行われている

    また、後ほどGitHubに登録します。

  • NoMaYさん

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

    > ちなみに、「RXマイコンのAmazon FreeRTOS対応Amazon Web Service IoT開発キットとして、
    > 一般販売を目指して」とのことですが、これはルネサスブランドで出るのだろう、
    > と考えて良いのでしょうか?

    はい、と言いたいところですが、現在関係者と協議中です。
    私は技術者なので、これがどのくらい売り上げ貢献できるのかというところが
    まったくわからず、方々説得に苦労しています。
    なんらか公式日程がお伝えできる段になりましたら、また連絡させていただきます。

    GCCの件、ありがとうございます。とても助かります。
    その他活動についても、「胃が痛い」とのことですが、
    NoMaYさんの調査のおかげで話が動いたということもありますし、
    私ひとりの調査だとスムーズにいかなかったところもあると思います。

    今後もこの場を活用してゴールを目指していきたいです。
    また気づいた点などありましたら、書き込んでいただけますと幸いです。

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

    遅くなりましたが、またGitHubに登録しました。以下の作業を行ったものです。

    ・ Amazon FreeRTOS v1.2.2に追従しました
    ・ 土曜日にシェルティさんから頂いたソースを取り込みました
    ・ 私が前の投稿に書いたhwsetup.cの差し替えをユーザにやって貰わなくても済む方法を取り入れました
    など

    今回のGitHubのリポジトリとzipファイルは以下の通りです。なお、いずれも、Amazon本家とRXの差分ではなく、両方含んだものになっています。

    リポジトリ:
    github.com/NoMaY-jp/amazon-freertos/tree/renesas-rx-experiment-20180318

    zipファイルのダウンロードURL:
    github.com/NoMaY-jp/amazon-freertos/archive/renesas-rx-experiment-20180318.zip

    ダウンロードされるzipファイル名:
    amazon-freertos-renesas-rx-experiment-20180318.zip

    なお、今回、たまたま、ダウンロードしたzipファイルを以下のフォルダへ解凍した後にビルドしようとしたら、e2 studioで以下のコンパイルエラーが発生してしまいました。エラーは、rx65n-envision-kitプロジェクトとrx65n-rskプロジェクトでは微妙に異なり、さらに、解凍するフォルダのパスが浅くなるようにしたら共に発生しなくなりました。今回試した2つのフォルダのパスの深さでは、CS+でコンパイルエラーは発生しませんでしたが、フォルダのパスをもっと深くしたら発生するかもしれません。(というか発生するような予感がします。) 今回、当方特有の事情でCC-RX V2.03を使用しているのですが、今後、新しいパソコンでCC-RX V2.08でも確認してみようかと思います。もっとも、パスの深さが深くなれば、いずれコンパイルエラーが発生するようになるのは仕方ないと思っていますが、あまり深いとは言えない深さのフォルダで解凍した場合でも発生してしまうので、注意事項のテキストファイルを付けようかと思っています。

    e2 studioでコンパイルエラーが発生したもの

    解凍したフォルダ:
    C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318

    この事例でのrx65n-envision-kitプロジェクトのプロジェクトフォルダの位置:
    C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6

    この事例でのrx65n-rskプロジェクトのプロジェクトフォルダフォルダの位置:
    C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-rsk\ccrx-e2studio6

    e2 studioでコンパイルエラーが発生しなかったもの

    解凍したフォルダ:
    C:\Renesas\AmazonFreeRTOS\renesas-rx-experiment-20180318

    この事例でのrx65n-envision-kitプロジェクトのプロジェクトフォルダの位置:
    C:\Renesas\AmazonFreeRTOS\renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6

    この事例でのrx65n-rskプロジェクトのプロジェクトフォルダの位置:
    C:\Renesas\AmazonFreeRTOS\renesas-rx-experiment-20180318\demos\renesas\rx65n-rsk\ccrx-e2studio6

    CS+ではどちらのフォルダでもコンパイルエラーは発生しなかった(もっと深いパスでは発生するのではないかと思う)

    解凍したフォルダ1:
    C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318

    この事例でのrx65n-envision-kitプロジェクトのプロジェクトフォルダの位置:
    C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-csplus

    この事例でのrx65n-rskプロジェクトのプロジェクトフォルダの位置:
    C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-rsk\ccrx-csplus

    解凍したフォルダ2:
    C:\Renesas\AmazonFreeRTOS\renesas-rx-experiment-20180318

    この事例でのrx65n-envision-kitプロジェクトのプロジェクトフォルダの位置:
    C:\Renesas\AmazonFreeRTOS\renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-csplus

    この事例でのrx65n-rskプロジェクトのプロジェクトフォルダの位置:
    C:\Renesas\AmazonFreeRTOS\renesas-rx-experiment-20180318\demos\renesas\rx65n-rsk\ccrx-csplus

    e2 studioで発生したコンパイルエラーは以下のように2つのプロジェクトで微妙に異なる

    e2 studioでCソース毎にCC-RXを2回起動しているうちの、ヘッダファイルの依存関係をスキャンしている1回目の起動においてコンパイルエラーが発生する為、実際にコンパイルが実行される2回目の起動は行われませんが、試しにコマンドプロンプトで手入力して2回目の起動で実行される筈だったコマンドの内容で起動してみたところ、同様にコンパイルエラーになりました。(つまり、ヘッダファイルの依存関係のスキャンに特有の現象では無いようです。なお、エラーの内容は微妙に異なる部分がありました。)

    rx65n-envision-kitプロジェクトで発生したコンパイルエラー:

    エラー箇所その1:

    ccrx -MM -MP -output=dep="src/realtime_OS_pkg/hwsetup/hwsetup.d"  -MT="src/realtime_OS_pkg/hwsetup/hwsetup.obj"  -MT="src/realtime_OS_pkg/hwsetup/hwsetup.d" -isa=rxv2 -fpu -branch=32 -include="C:\Renesas\CS_~1\CC\CC-RX\V203~1.00\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\common\config_files","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\common\application_code","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\common\application_code\renesas_code","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\common\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\include\private","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\FreeRTOS\portable\Renesas\RX600v2","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\FreeRTOS-Plus-TCP\source\protocols\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\FreeRTOS-Plus-TCP\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\FreeRTOS-Plus-TCP\source\portable\Compiler\Renesas","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\ota\portable\renesas\rx65n-envision-kit","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\third_party\jsmn","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\third_party\pkcs11","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\third_party\tinycbor","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\third_party\mbedtls\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\realtime_OS_pkg\r_bsp_rtos","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\realtime_OS_pkg\r_cmt_rtos_rx","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\realtime_OS_pkg\r_cmt_rtos_rx\src","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\FreeRTOS_user","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\smc_gen\r_config","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\smc_gen\r_ether_rx","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\smc_gen\r_flash_rx","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\smc_gen\r_flash_rx\src","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\smc_gen\r_flash_rx\src\flash_type_1","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\smc_gen\r_flash_rx\src\flash_type_2","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\smc_gen\r_flash_rx\src\flash_type_3","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\smc_gen\r_flash_rx\src\flash_type_4","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\smc_gen\r_flash_rx\src\targets","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\smc_gen\general","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\smc_gen\r_pincfg" -lang=c99 -nomessage -change_message=information=21644 -debug -nologo  "../src/realtime_OS_pkg/hwsetup/hwsetup.c"
    ../src/realtime_OS_pkg/hwsetup/../r_bsp_rtos/./board/rskrx65n_2mb/r_bsp.h(52):E0520005:Could not open source file "../../../r_bsp_rtos/mcu/rx65n/mcu_mapped_interrupts_private.h"
    ../src/realtime_OS_pkg/hwsetup/../r_bsp_rtos/./board/rskrx65n_2mb/../../../r_bsp_rtos/mcu/rx65n/mcu_mapped_interrupts.h(204):E0520059:Function call is not allowed in a constant expression
    途中省略
    ../src/realtime_OS_pkg/hwsetup/../r_bsp_rtos/./board/rskrx65n_2mb/../../../r_bsp_rtos/mcu/rx65n/mcu_mapped_interrupts.h(1077):E0520059:Function call is not allowed in a constant expression
    Error limit reached.

    エラー箇所その2:

    ccrx -MM -MP -output=dep="src/realtime_OS_pkg/r_cmt_rtos_rx/src/r_cmt_rx.d"  -MT="src/realtime_OS_pkg/r_cmt_rtos_rx/src/r_cmt_rx.obj"  -MT="src/realtime_OS_pkg/r_cmt_rtos_rx/src/r_cmt_rx.d" -isa=rxv2 -fpu -branch=32 -include="C:\Renesas\CS_~1\CC\CC-RX\V203~1.00\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\common\config_files","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\common\application_code","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\common\application_code\renesas_code","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\common\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\include\private","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\FreeRTOS\portable\Renesas\RX600v2","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\FreeRTOS-Plus-TCP\source\protocols\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\FreeRTOS-Plus-TCP\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\FreeRTOS-Plus-TCP\source\portable\Compiler\Renesas","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\ota\portable\renesas\rx65n-envision-kit","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\third_party\jsmn","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\third_party\pkcs11","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\third_party\tinycbor","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\third_party\mbedtls\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\realtime_OS_pkg\r_bsp_rtos","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\realtime_OS_pkg\r_cmt_rtos_rx","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\realtime_OS_pkg\r_cmt_rtos_rx\src","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\FreeRTOS_user","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\smc_gen\r_config","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\smc_gen\r_ether_rx","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\smc_gen\r_flash_rx","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\smc_gen\r_flash_rx\src","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\smc_gen\r_flash_rx\src\flash_type_1","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\smc_gen\r_flash_rx\src\flash_type_2","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\smc_gen\r_flash_rx\src\flash_type_3","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\smc_gen\r_flash_rx\src\flash_type_4","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\smc_gen\r_flash_rx\src\targets","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\smc_gen\general","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\src\smc_gen\r_pincfg" -lang=c99 -nomessage -change_message=information=21644 -debug -nologo  "../src/realtime_OS_pkg/r_cmt_rtos_rx/src/r_cmt_rx.c"
    ../src/realtime_OS_pkg/r_cmt_rtos_rx/src/../../r_bsp_rtos/./board/rskrx65n_2mb/r_bsp.h(45):E0520005:Could not open source file "../../../r_bsp_rtos/mcu/rx65n/register_access/iodefine.h"
    ../src/realtime_OS_pkg/r_cmt_rtos_rx/src/../../r_bsp_rtos/./board/rskrx65n_2mb/r_bsp.h(51):E0520005:Could not open source file "../../../r_bsp_rtos/mcu/rx65n/mcu_interrupts.h"
    ../src/realtime_OS_pkg/r_cmt_rtos_rx/src/../../r_bsp_rtos/./board/rskrx65n_2mb/r_bsp.h(52):E0520005:Could not open source file "../../../r_bsp_rtos/mcu/rx65n/mcu_mapped_interrupts_private.h"
    ../src/realtime_OS_pkg/r_cmt_rtos_rx/src/../../r_bsp_rtos/./board/rskrx65n_2mb/r_bsp.h(53):E0520005:Could not open source file "../../../r_bsp_rtos/mcu/rx65n/mcu_mapped_interrupts.h"
    ../src/realtime_OS_pkg/r_cmt_rtos_rx/src/../../r_bsp_rtos/./board/rskrx65n_2mb/r_bsp.h(55):E0520005:Could not open source file "../../../r_bsp_rtos/board/rskrx65n_2mb/rskrx65n_2mb.h"
    ../src/realtime_OS_pkg/r_cmt_rtos_rx/src/../../r_bsp_rtos/./board/rskrx65n_2mb/r_bsp.h(56):E0520005:Could not open source file "../../../r_bsp_rtos/board/rskrx65n_2mb/hwsetup.h"
    ../src/realtime_OS_pkg/r_cmt_rtos_rx/src/../../r_bsp_rtos/./board/rskrx65n_2mb/r_bsp.h(57):E0520005:Could not open source file "../../../r_bsp_rtos/board/rskrx65n_2mb/lowsrc.h"
    ../src/realtime_OS_pkg/r_cmt_rtos_rx/src/../../r_bsp_rtos/./board/rskrx65n_2mb/r_bsp.h(58):E0520005:Could not open source file "../../../r_bsp_rtos/board/rskrx65n_2mb/vecttbl.h"

    rx65n-rskプロジェクトで発生したコンパイルエラー:

    エラー箇所(1つのみ):

    ccrx -MM -MP -output=dep="src/realtime_OS_pkg/r_cmt_rtos_rx/src/r_cmt_rx.d"  -MT="src/realtime_OS_pkg/r_cmt_rtos_rx/src/r_cmt_rx.obj"  -MT="src/realtime_OS_pkg/r_cmt_rtos_rx/src/r_cmt_rx.d" -isa=rxv2 -fpu -branch=32 -include="C:\Renesas\CS_~1\CC\CC-RX\V203~1.00\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-rsk\ccrx-e2studio6","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-rsk\common\config_files","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-rsk\common\application_code","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-rsk\common\application_code\renesas_code","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\common\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\include\private","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\FreeRTOS\portable\Renesas\RX600v2","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\FreeRTOS-Plus-TCP\source\protocols\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\FreeRTOS-Plus-TCP\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\FreeRTOS-Plus-TCP\source\portable\Compiler\Renesas","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\ota\portable\renesas\rx65n-rsk","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\third_party\jsmn","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\third_party\pkcs11","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\third_party\tinycbor","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\lib\third_party\mbedtls\include","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-rsk\ccrx-e2studio6\src\realtime_OS_pkg\r_bsp_rtos","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-rsk\ccrx-e2studio6\src\realtime_OS_pkg\r_cmt_rtos_rx","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-rsk\ccrx-e2studio6\src\realtime_OS_pkg\r_cmt_rtos_rx\src","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-rsk\ccrx-e2studio6\src\FreeRTOS_user","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-rsk\ccrx-e2studio6\src","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-rsk\ccrx-e2studio6\src\smc_gen\r_config","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-rsk\ccrx-e2studio6\src\smc_gen\r_ether_rx","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-rsk\ccrx-e2studio6\src\smc_gen\r_flash_rx","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-rsk\ccrx-e2studio6\src\smc_gen\r_flash_rx\src","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-rsk\ccrx-e2studio6\src\smc_gen\r_flash_rx\src\flash_type_1","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-rsk\ccrx-e2studio6\src\smc_gen\r_flash_rx\src\flash_type_2","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-rsk\ccrx-e2studio6\src\smc_gen\r_flash_rx\src\flash_type_3","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-rsk\ccrx-e2studio6\src\smc_gen\r_flash_rx\src\flash_type_4","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-rsk\ccrx-e2studio6\src\smc_gen\r_flash_rx\src\targets","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-rsk\ccrx-e2studio6\src\smc_gen\general","C:\Renesas\AmazonFreeRTOS\amazon-freertos-renesas-rx-experiment-20180318\demos\renesas\rx65n-rsk\ccrx-e2studio6\src\smc_gen\r_pincfg" -lang=c99 -nomessage -change_message=information=21644 -debug -nologo  "../src/realtime_OS_pkg/r_cmt_rtos_rx/src/r_cmt_rx.c"
    ../src/realtime_OS_pkg/r_cmt_rtos_rx/src/../../r_bsp_rtos/./board/rskrx65n_2mb/r_bsp.h(45):E0520005:Could not open source file "../../../r_bsp_rtos/mcu/rx65n/register_access/iodefine.h"
    ../src/realtime_OS_pkg/r_cmt_rtos_rx/src/../../r_bsp_rtos/./board/rskrx65n_2mb/r_bsp.h(52):E0520005:Could not open source file "../../../r_bsp_rtos/mcu/rx65n/mcu_mapped_interrupts_private.h"
    ../src/realtime_OS_pkg/r_cmt_rtos_rx/src/../../r_bsp_rtos/./board/rskrx65n_2mb/../../../r_bsp_rtos/mcu/rx65n/mcu_mapped_interrupts.h(204):E0520059:Function call is not allowed in a constant expression
    途中省略
    ../src/realtime_OS_pkg/r_cmt_rtos_rx/src/../../r_bsp_rtos/./board/rskrx65n_2mb/../../../r_bsp_rtos/mcu/rx65n/mcu_mapped_interrupts.h(1068):E0520059:Function call is not allowed in a constant expression
    Error limit reached.

     

  • NoMaYさん

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

    GitHub対応感謝です。⑧を進めようかと思ったのですが、どのSPI接続無線LANモジュールにするか
    なかなか結論が出ておりません。ひとまずRTL8710が一番良さそうな気がしているのでデータシートを
    眺めたりしていますが、先に⑪⑫を私も頑張ってみようかと思います。
    できれば、私も直接GitHubにコードを入れていきたいと思います。また報告します。
    深いパスでビルドできない件は開発部門に確認してみたいと思います。

    --------------------------------------------------------------------------
    ■進捗
    --------------------------------------------------------------------------
    RX65N Envision Kit、RX65N RSK(2MB版/暗号器あり品)をターゲットにコードメンテを維持します。
    下記 Amazon FreeRTOS 1.2.x は適宜最新コードに更新していきます。
    2018/03/17時点での適用コードは 1.2.2 です。

    ①ルネサスTCP/IPをターゲットで動作させる(Etherの動作確認)
    ②SDIO無線LANを動作確認した時期のFreeRTOS 8.2.2をターゲットで動作させる
    ③ルネサスのFreeRTOSパッケージ、9.0.0をターゲットで動作させる
    ④Amazon FreeRTOS 1.2.xのFreeRTOS部分をターゲットで動作させる
    ⑤Amazon FreeRTOS 1.2.xのFreeRTOS+TCP部分をターゲットで動作させる
    ⑥Amazon FreeRTOS 1.2.xのmbed TLS部分をターゲットで動作させる
    ⑦Amazon FreeRTOS 1.2.xのMQTT部分をターゲットで動作させる(AWSへの接続実験)
    ⑧Amazon FreeRTOS 1.2.xのFreeRTOS+TCP部分のネットワーク層の結合部分を工夫して、
     (1)Ether、(2)SPI接続無線LANモジュール、(3)SDIO無線LANモジュールの3種類を
     切り替えられるようにする ★いまここ@シェルティ ->中断して⑪⑫GitHubの調整
    ⑨Amazon FreeRTOS 1.2.xのmbed TLS部分の暗号処理プリミティブの
     ソフトウェア実装(AESとかRSAとか)をRX65N内蔵暗号器を使った
     ハードウェア実装に置き換える ★いまここ@協力会社
    ⑩Ether層のゼロコピーに対応する
    ⑪Amazon FreeRTOS本家環境にマージし、Amazon FreeRTOS本家コードへの追従を簡単にできるようにする
    ⑫Amazon FreeRTOS のGitのforkに登録する
    ⑬Amazon FreeRTOS のCertificationを受験し合格しGitの本家に登録する
     aws.amazon.com/.../
    ⑭GCC対応
    ⑮Amazon FreeRTOSの最低ハードウェア要件であるRAM64KBを満たさないRXマイコンでは
     SSLおよびTCP/IP機能をWIFIモジュール側にオフロードした版を用意する
    ⑯再度Amazon FreeRTOS のCertificationを受験し合格しGitの本家に登録する

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

    GitHubのアカウントを教えて頂ければ、リポジトリの設定を変更して、シェルティさんからもリポジトリを直接変更出来るようにしたいと思います。

    また、解凍したフォルダのパスが(あまり深いとは言えないけれども)深くなるとコンパイルエラーが発生する件、問い合わせて頂けるとのことで有難う御座います。私の方でも、CS+とe2 studioで違いがあることが気になってしまい、もっと調べてみました。CS+では、コンパイルエラーが発生するかしないかの境目は以下の深さでした。それに対して、e2 studioでは、境目が以下の深さでした。

    CS+

    OK:
    C:\Renesas\AmazonFreeRTOS\renesas-rx-experiment-20180318-1234567890123456789

    NG:
    C:\Renesas\AmazonFreeRTOS\renesas-rx-experiment-20180318-12345678901234567890
    以下のエラーが発生
    src\realtime_OS_pkg\r_cmt_rtos_rx\src\../../r_bsp_rtos/./board/rskrx65n_2mb/r_bsp.h(52):F0520005:Could not open source file "../../../r_bsp_rtos/mcu/rx65n/mcu_mapped_interrupts_private.h"
    (参) この時のソースツリー上の最も深いパス名 = 207文字
    C:\Renesas\AmazonFreeRTOS\renesas-rx-experiment-20180318-12345678901234567890\demos\renesas\rx65n-envision-kit\ccrx-csplus\src\realtime_OS_pkg\r_bsp_rtos\board\rskrx65n_2mb\r_bsp_interrupt_config_reference.h

    e2 studio

    OK:
    C:\Renesas\AmazonFreeRTOS\renesas-rx-experiment-20180318

    NG:
    C:\Renesas\AmazonFreeRTOS\renesas-rx-experiment-20180318-
    以下のエラーが発生
    ../src/realtime_OS_pkg/r_cmt_rtos_rx/src/../../r_bsp_rtos/./board/rskrx65n_2mb/r_bsp.h(52):E0520005:Could not open source file "../../../r_bsp_rtos/mcu/rx65n/mcu_mapped_interrupts_private.h"
    (参) この時のソースツリー上の最も深いパス名 = 187文字
    C:\Renesas\AmazonFreeRTOS\renesas-rx-experiment-20180318-\demos\renesas\rx65n-envision-kit\ccrx-csplus\src\realtime_OS_pkg\r_bsp_rtos\board\rskrx65n_2mb\r_bsp_interrupt_config_reference.h

    推測ですが、<カレントフォルダのパス>¥<Cソースフォルダの相対パス>¥<ヘッダファイルの相対パス>というようにパスを連結しようとしている処理があって、連結後のパスの長さが260文字(Windows SDKのMAX_PATH)を超える場合には連結するのではなく何かエラーを返すようになっていて、それがコンパイルエラーに繋がっているのではないか、という予感がします。なぜなら、エラーメッセージに含まれているパスから連結後のパスを作ってみると以下の通りになって、それが261文字だったからです。

    CS+

    Renesas\AmazonFreeRTOS\renesas-rx-experiment-20180318-12345678901234567890\demos\renesas\rx65n-envision-kit\ccrx-csplus\src\realtime_OS_pkg\r_bsp_rtos\mcu\all\../../../r_bsp_rtos/./board/rskrx65n_2mb/../../../r_bsp_rtos/mcu/rx65n/mcu_mapped_interrupts_private.h

    e2 studio

    Renesas\AmazonFreeRTOS\renesas-rx-experiment-20180318-\demos\renesas\rx65n-envision-kit\ccrx-e2studio6\HardwareDebug\..\src\realtime_OS_pkg\r_bsp_rtos\mcu\all\../../../r_bsp_rtos/./board/rskrx65n_2mb/../../../r_bsp_rtos/mcu/rx65n/mcu_mapped_interrupts_private.h

    そして、e2 studioがCS+より浅いフォルダに解凍した場合でもコンパイルエラーが発生するのは、e2 studioではCS+よりも1階層深いフォルダがカレントフォルダですので、それによる差異でマージンが大きく削られてしまっているのだと推測されます(上のパスの赤字部分)。また、寄与としては小さいのですが、フォルダ名に含まれている"e2studio6"が"csplus"より長い文字列であるということもあります(上のパスの青字部分)。

    なお、ファイルシステム、レジストリ、プロセス、スレッドの活動をリアルタイムで表示する、Process MonitorというMicrosoft社のツールを使い、CC-RXのファイルアクセスを調べてみた印象では、Windows API内部の処理で起きているのでは無さそうで、CC-RXに実装された処理で起きているのだろうと推測されます。なぜなら、以下の画面コピーの通り、OKの場合にはrealtime_OS_pkg\r_bsp_rtos\mcu\rx65n\mcu_mapped_interrupts_private.hへ問題無くファイルアクセス出来ていますが、NGの場合にはmcu_mapped_interrupts_private.hを探そうと幾つものパスの組み合わせを試していますがrealtime_OS_pkg\r_bsp_rtos\mcu\rx65n\mcu_mapped_interrupts_private.hへファイルアクセスは見当たらず、CC-RXに実装された処理で事前に除外されてしまっているのだと推測されます。

    OKの場合はrealtime_OS_pkg\r_bsp_rtos\mcu\rx65n\mcu_mapped_interrupts_private.hへ問題無くアクセス出来ている


    NGの場合はrealtime_OS_pkg\r_bsp_rtos\mcu\rx65n\mcu_mapped_interrupts_private.hへのアクセスが見当たらない

  • NoMaYさん

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

    種々調査ありがとうございます。

    私のGitHubのアカウントは SheltyDog です。よろしくお願いします。
    コードが出来てきたので、NoMaYさんのフォークをベースに整理していきたいと思っています。
    github.com/.../amazon-freertos

    GitHubにある最新版はビルドが通らないと思いますが、何かビルドを通すまでの
    ステップがありましたら、教えていただけますと幸いです。
    #スマートコンフィグレータでコード出力して、インクルードパスを整えていけばよいかとは思っています。

    また、アプリ層に近いコードに関しては、ルネサスアメリカの開発チームと共同活動することにしました。テストはほぼ通ったそうです。

    --------------------------------------------------------------------------
    ■進捗
    --------------------------------------------------------------------------
    RX65N Envision Kit、RX65N RSK(2MB版/暗号器あり品)をターゲットにコードメンテを維持します。
    下記 Amazon FreeRTOS 1.2.x は適宜最新コードに更新していきます。
    2018/03/17時点での適用コードは 1.2.2 です。

    ①ルネサスTCP/IPをターゲットで動作させる(Etherの動作確認)
    ②SDIO無線LANを動作確認した時期のFreeRTOS 8.2.2をターゲットで動作させる
    ③ルネサスのFreeRTOSパッケージ、9.0.0をターゲットで動作させる
    ④Amazon FreeRTOS 1.2.xのFreeRTOS部分をターゲットで動作させる
    ⑤Amazon FreeRTOS 1.2.xのFreeRTOS+TCP部分をターゲットで動作させる
    ⑥Amazon FreeRTOS 1.2.xのmbed TLS部分をターゲットで動作させる
    ⑦Amazon FreeRTOS 1.2.xのMQTT部分をターゲットで動作させる(AWSへの接続実験)
    ⑧Amazon FreeRTOS 1.2.xのFreeRTOS+TCP部分のネットワーク層の結合部分を工夫して、
     (1)Ether、(2)SPI接続無線LANモジュール、(3)SDIO無線LANモジュールの3種類を
     切り替えられるようにする ★(1)は完成。アメリカの開発チームに(2)を依頼。(3)はスキップ
    ⑨Amazon FreeRTOS 1.2.xのmbed TLS部分の暗号処理プリミティブの
     ソフトウェア実装(AESとかRSAとか)をRX65N内蔵暗号器を使った
     ハードウェア実装に置き換える ★一旦スキップしてソフトウェア実装のみでゴールを目指す。
    ⑩Ether層のゼロコピーに対応する ★アメリカの開発チームに依頼。うまくいかない場合はスキップ
    ⑪Amazon FreeRTOS本家環境にマージし、Amazon FreeRTOS本家コードへの追従を簡単にできるようにする ★アメリカの開発チームで調整済み
    ⑫Amazon FreeRTOS のGitのforkに登録する ★アメリカの開発チームの成果を受け調整結果登録する予定
    ⑬Amazon FreeRTOS のCertificationを受験し合格しGitの本家に登録する  ★アメリカの開発チームで調整中(ほぼ完成)
     aws.amazon.com/.../
    ⑭GCC対応  ★協力会社に依頼予定(一旦スキップしてCC-RXのみでゴールを目指す)
    ⑮Amazon FreeRTOSの最低ハードウェア要件であるRAM64KBを満たさないRXマイコンでは
     SSLおよびTCP/IP機能をWIFIモジュール側にオフロードした版を用意する  ★アメリカの開発チームに依頼。うまくいかない場合はスキップ
    ⑯再度Amazon FreeRTOS のCertificationを受験し合格しGitの本家に登録する ★アメリカの開発チームに依頼。

    --------------------------------------------------------------------------
    ■その他課題
    --------------------------------------------------------------------------
    ・e2 studio, CS+ともに長いファイルパスの場合コンパイルエラーが発生
    ・スマートコンフィグレータで出力したコードの取り扱い (出力後の状態でGitHubに掲載できるのか?)

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

    驚きました。ルネサスアメリカの開発チームも加わることになったのですね。(むしろ、ルネサスアメリカ主体になったとか?) ちなみに、ルネサスアメリカがやろうとしているSPI接続無線LANモジュール/ターゲットボードは、以下のものだったりしますか?

    RX65N Wi-Fi Cloud Connectivity Kit (以前調べた時は日本からは購入出来ないようでした。技適の関係かも知れません。)
    www.renesas.com/en-us/solutions/key-technology/connectivity/wi-fi/rx65n-wi-fi-kit.html

    そして、GitHubのリポジトリに関しては、すみません、遅くなりましたが、invitationを送りました。GitHubから以下のようなメールが届いているかと思います。メール内の[View invitation]のボタンのリンク先でacceptして頂けますか。

    メールのタイトル:
    NoMaY-jp invited you to NoMaY-jp/amazon-freertos

    メールの内容:
    @NoMaY-jp has invited you to collaborate on the NoMaY-jp/amazon-freertos repository

    You can accept or decline this invitation. You can also head over to
    https://github.com/NoMaY-jp/amazon-freertos to check out the repository or
    visit @NoMaY-jp to learn a bit more about them.

    [View invitation] ← ボタン

    それから、ソースをビルドするには以下のテキストの手順に従ってソースを入手および生成して頂けませんか。以下の2つのテキストはrx65n-rsk/ccrx-e2studio6のものですが、他のものも同様のフォルダにテキストを置いています。この2つの手順だけでビルド出来るようになります。

    ああっ、そうか、e2 studioでビルドする場合、どのソースが不足しているのか全く分からない(e2 studio/CDTはソースの有無に関しては一切関知しないので、CS+のようにソースが欠落しているというエラーは出ない)ので、このテキストの存在に気付きようがないですね。すみません。配慮が足りませんでした。どうするのが良いのか考えてみたところ、1つ案が思い浮かびました。幾つか前の投稿でも書いたビルド前ステップで、何かファイルの有無をチェックして見付からない場合は、以下のテキストを読むよう促すメッセージをコンソールウィンドウに表示させてみる、ということをやってみようかと思います。併せて、このGitHubのリポジトリのトップページのREADME.mdに注意書きを加えようと思います。もちろん、これらの手順が不要なようにGitHubに登録出来るようになれば、それが一番良いと思います。

    (1) RX65N Group Application Note RX65N Real-time OS Package V1.0.00のソースの入手

    テキストの場所:
    demos/renesas/rx65n-rsk/ccrx-e2studio6/src/realtime_OS_pkg/get!.txt

    内容:
    github.com/NoMaY-jp/amazon-freertos/blob/renesas-rx-experiment/demos/renesas/rx65n-rsk/ccrx-e2studio6/src/realtime_OS_pkg/get!.txt

    (2) スマートコンフィグレータのコード生成機能でソースを生成

    テキストの場所:
    demos/renesas/rx65n-rsk/ccrx-e2studio6/src/smc_gen/generate!.txt

    内容:
    github.com/NoMaY-jp/amazon-freertos/blob/renesas-rx-experiment/demos/renesas/rx65n-rsk/ccrx-e2studio6/src/smc_gen/generate!.txt

    [追記]

    おお、Hardware PartnersにESPRESSIFが、Ecosystem & Technology PartnersにSEGGERとMIPSが、新たに加わっていますね。このHardware PartnersにやがてRENESASも加わるのですね。(あれっ、armって全部小文字でしたっけ。ARM→Armになったのだったような。)

    Amazon FreeRTOS Partners
    aws.amazon.com/jp/freertos/partners/
     

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

    >e2 studio, CS+ともに長いファイルパスの場合コンパイルエラーが発生
    これは回避策が見付かりそうです。

  • NoMaYさん

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

    Invitationありがとうございます。
    間違えてプライベートのメールアドレスをPrimary設定にしていたので、
    会社のメールアドレスにInvitationが届いてませんでした。
    帰宅したらInvitationの処理をします。

    ボードは「RX65N Wi-Fi Cloud Connectivity Kit」ではなくて、
    RX65N TargetBoardの拡張ボードで、と考えています。
    www.renesas.com/.../rx-family-target-board.html

    RX65N Wi-Fi Cloud Connectivity Kit は日本国内技適が取れておらず、日本国内販売ができないからです。
    拡張ボードはEtherと代表的センサと無線LAN拡張コネクタをと考えており、
    可能な限り廉価でW/W販売しようとしています。
    使用する無線LANモジュールをどれにしようか悩んでいるところです。
    W/Wで技適取得済みとなると限られてしまいますね。

    ルネサスアメリカの経緯ですが、私たちのかふぇルネでの活動を会社内で報告していたところ
    彼らもRX65N Wi-Fi Cloud Connectivity Kit でAmazonと付き合いがあり、協力できそうとのことで
    話に乗ってきてくれました。NoMaYさんの行動が大きな起点になっていると思っております。
    新しいことを始めるときは工数見積もりが難しく、積極的に挑戦する人が少ないのですが、
    最初のとっかかりが出来てしまえば、わりとあっさり進んだりもするものですね。
    恐れず挑戦する姿勢が大事なのだと思います。(一定確率で失敗してしまったりもしますけれど必要経費と思っています)
    本件、NoMaYさんにとっかかりを作って頂けたものと思っています。
    ありがとうございます。なんとかゴールに導きたいと思います。

    get!.txt, generate!.txtについては、申し訳ありません。
    ファイルの存在は過去投稿を覚えているので知っていたのですが
    他になにか落とし穴的なものがないか確認したく、質問させていただきました。
    このファイルを見ながら、今週末にコード調整したいと思います。

    >>Hardware PartnersにやがてRENESASも加わるのですね。

    はい、そうしたいと思っています。
    FreeRTOSがAmazonに買収される前は、RenesasもパートナーとしてFreeRTOSのページに
    ロゴが置いてあったはずなのですが、買収後は、Amazonに協力しているパートナーのみ
    表示されるようになりましたね。


    >>>>e2 studio, CS+ともに長いファイルパスの場合コンパイルエラーが発生
    >>これは回避策が見付かりそうです。

    助かります。また、ご連絡いただけますと幸いです。

    以上です