e2 studio v7.5.0でFreeRTOS+SCFGプロジェクトではRTOS Objectコンポーネントというものは使えないのかな

こんにちは。NoMaYです。

今首を傾げているのですが、以下のドキュメントによると、e2 studio v7.5.0ではAmazon FreeRTOSプロジェクトに於いてスマートコンフィグレータでRTOS Objectコンポーネントというものが使用出来る/存在するらしいのですが、これは単なるFreeRTOSプロジェクトでは使用出来ない/存在しないものなのでしょうか?(スマートコンフィグレータウィンドウの、コンポーネントタブ上に表示されない&コンポーネント追加ダイアロにも表示されない、ので、そうなのかな、とは思っているのですが、Amazon FreeRTOSプロジェクトとFreeRTOSプロジェクトで、このような部分で違っているのが意外でしたので、、、)

e2 studio 7.5.0 Release Note
www.renesas.com/jp/ja/doc/products/tool/doc/016/r20ut4556ee0101-e2studio.pdf
Page 17 of 72

New Amazon FreeRTOS Configuration user interface provide within e2 studio 7.5 featuring:
● Imported FreeRTOS project with pre-loaded FreeRTOS Components (Object, Kernel and Amazon Libraries).

o FreeRTOS Object configuration: allow user to be able to create, configure multiple FreeRTOS objects using GUI (Tasks, Semaphores, Queues, Software Timers, Event Groups, Message Buffers, Stream Buffers)
o Create/Remove FreeRTOS Objects with user friendly UI.



ちなみに、プロジェクトの生成では、コンパイラはCC-RX V3.01、デバイスはR5F565NEDxFP、に設定して試しました。

  • こんにちは。NoMaYです。

    原因は、別スレッド『e2 studio v7.5.0でRDP v1.20ダウンロード後もSCFGプロジェクトを生成させるとr_bsp v4.01が使用されてしまう』と同じく、e2 studioの[ヘルプ]→[更新の検査]/[新規ソフトウェアのインストール]からでは正しく最新版へアップデートされない(ケースがある?)、ということでした。

    setup_e2_studio_7_5_0.exeで新規インストールしたところ、以下の画面コピーの通りRTOS Objectコンポーネントが表示されるようになりました。



    なお、プロジェクト構造は、以下の画面コピーのように、e2 studio v7.4.0の時に比べて、frtos_skeletonというフォルダが追加されていました。RTOS Objectコンポーネントで追加したTaskオブジェクト(関数ですね)は、このフォルダの下にCソース(といっても極々単純なスケルトンのみです)が追加されて行きました。また、SemaphoreやQueue等のオブジェクト(変数ですね)は、frtos_startupフォルダの下のfreertos_object_init.cの中に定義されて行きました。TaskオブジェクトもSemaphoreやQueue等のオブジェクトも、createする部分はfreertos_object_init.cの中に記述されて行きました。



    ちなみに、RTOS Kernelコンポーネントの表示は以下の画面コピーの通りでした。


  • NoMaYさん

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

    ご紹介ありがとうございます。これからも継続して機能を足していきます。
    おかしな動きをするところがあれば開発にフィードバックします。
    次大きなところとしては、Amazon FreeRTOSを含めたコンフィグレーションやプロジェクト生成ですね。
    こっそりAmazon FreeRTOSのインポートだけは出来るようにすでにしてあります。
    インポート元はNoMaYさんと共同で開発しているGitHubのリポジトリにしてあります。
    github.com/.../amazon-freertos

    近いうちに以下に引っ越します。
    github.com/.../amazon-freertos

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

    e2 studio 7.8.0 Release Noteの記載では、GNURXでもFreeRTOSプロジェクトが作成出来ることになったようなのですが、実際には、プロジェクトウィザードで作成しようとすると、「FreeRTOSパッケージが見つかりませんでした。」というエラーが表示されてしまい、作成出来ません。あれこれ調べてみると、結局のところ、GNURXのFreeRTOSプロジェクト作成に必要なzipファイルが、まだダウンロード可能になってない(リリースされてない?)ことが原因であるような気がしました、、、

    e2 studio 7.8.0 Release Noteの記載ではGNURXでもFreeRTOSプロジェクトが作成出来ることになった(画面コピー)
    www.renesas.com/jp/ja/doc/products/tool/doc/016/r20ut4786eg0101-e2studio.pdf


    実際には「FreeRTOSパッケージが見つかりませんでした。」というエラーが表示されて作成出来ない(画面コピー)


    現在ダウンロード出来る最新版の「RXファミリ Renesas FreeRTOS」パッケージはGNURX未対応のまま(画面コピー)
    (念の為にzipファイルの中身を確認しましたが未対応のものでした(リリース日からして未対応の気配が濃厚でしたが))

     

  • こんにちは。NoMaYです。

    GNURXのFreeRTOSプロジェクト作成に必要なzipファイルがリリースされダウンロード可能になったっぽい模様です、、、

    RX ファミリ Renesas FreeRTOS
    www.renesas.com/jp/ja/software/D4800288.html

    アプリケーションノート(r01an4307jj0103-rx.pdf)とサンプルプログラム(C source, (e2 studio/CC-RX, e2 studio/GCC))が含まれています。

    画面コピー

     

  • こんにちは。NoMaYです。

    GNURXのFreeRTOSプロジェクトが作成出来るようになりました、、、(ちなみに、コード生成コンポーネントは使えませんでした、、、) なお、FreeRTOS kernelのバージョンはv10.0.3[訂正]v10.0.0でした。(現時点の最新版はv10.3.1です。もちろん、最新版が良いとは限りませんけれど。)

    画面コピー


    [関連リンク]

    e2 studio v7.5.0でFreeRTOS+SCFGプロジェクトを生成させるとコード生成コンポーネントが使えなくなる
    japan.renesasrulz.com/cafe_rene/f/forum21/5939/e2-studio-v7-5-0-freertos-scfg
     

  • こんにちは。NoMaYです。

    > なお、FreeRTOS kernelのバージョンはv10.0.3でした。

    以下のFreeRTOS kernelのGitHubのreleaseページ(画面コピー参照)にv10.0.3が無かったので、調べてみたところ、パッケージングされていたFreeRTOS kernelのソースのベースはv10.0.0だったことに気付きました。結局、FreeRTOS kernel側が X.Y.Z でバージョン管理している Z の部分をRenesasさん側でも独自に変更している、ということです。さすがに、ちょっと紛らわしい気がします、、、X.Y.Z.rとか、X.Y.Z_RX_YYYYMMDDとか、はやり X.Y.Z はベースにしたFreeRTOS kernelのソースのバージョンと一致している方が素朴で分かり易い気がします、、、

    あと、調査を始めたところですが、RXv2コアのRX231でRXv1コア用のRX200ポートレイヤを使うのは間違いな気がします。また、RXv3コアの品種でRXv2コア用のRX600v2ポートレイヤを使うのも間違いな気がします。タスク切り替え時にFPSWや倍精度浮動小数点レジスタが退避/復帰されないような気がします、、、

    github.com/FreeRTOS/FreeRTOS-Kernel/releases
    画面コピー

     

  • NoMaYさん

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

    バージョン表記の件、確かにおかしいですね。開発者に確認します。
    FreeRTOSのポートレイヤがおかしい件については、近々AWS本家にプルリクエストを発行してみようと考えてます。

    RX65N用のAmazon FreeRTOSのOTA機能が完成したのでつい先ほどAWS本家にプルリクエストを発行しました。
    github.com/.../2036

    このあたり片付いたら次はスマートコンフィグレータ/Amazon FreeRTOS連携でイマイチになっているところを直したり、
    FreeRTOSカーネルのポートレイヤがおかしい件(特にRXGCC用のコードが気になってます)を直したりしたいと考えてます。

    なかなか一度に綺麗にならずすみません。少しずつ進めております。

    以上です
  • NoMaYさん

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

    開発者に確認しました。バージョン表記がおかしい件認識しておりまして、
    「次回以降のリリース時の改善の課題とし修正目指す」とのことでした。

    ポートレイヤについては以下コメントでした。

    「本来はRXv3用のポートレイヤ、RX200 v2コア用のポートレイヤを用意すべきと思っております。
     こちらについても、今後改善を図っていきたいと思っております。」

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

    以下の件は、リリース一時停止しないとマズイ、ようなレベルの案件だと思うのです。現状では以下の問題が発生する筈なのです。まだ調査を始めたところで詳細では誤認識があるかも知れませんが。

    > 「本来はRXv3用のポートレイヤ、RX200 v2コア用のポートレイヤを用意すべきと思っております。
    >  こちらについても、今後改善を図っていきたいと思っております。」

    なお、hirakuni45さんが指摘されたRXポートレイヤの件は、FreeRTOS.orgに投稿したところ修正しますとのリプライでした。(この種類のフィードバックは最初からGitHubのFreeRTOS kernelのリポジトリを使うのがやっぱり望ましかったかなと反省するようなリプライでもありました。)

    FreeRTOS RXパッケージ v10.0.03での問題点と対処案

    ● RX230/RX231/RX23W

    (A-1) 単精度浮動小数点演算命令を使用してはいけません。タスク切り替え時にFPSWの退避/復帰を行っていない為、タスク間でFPSWの値がぐちゃぐちゃに入り乱れることになる為です。

    (A-2) DSP機能命令を使用してはいけません。タスク切り替え時にアキュムレータの退避/復帰を行っていない為、タスク間でアキュムレータの値がぐちゃぐちゃに入り乱れることになる為です。

    (A-Fix) RX600v2ポートレイヤを使うように修正する。実は、FreeRTOS kernelのFreeRTOS DemoプロジェクトでもRX231に関してはRX600v2ポートレイヤを使っているのです。なお、単精度浮動小数点演算命令やDSP機能命令を使用していなければ、そのまま使い続けられると思います(要確認)。

    ● RX72M/RX72N/RX66N

    (B-1) 倍精度浮動小数点演算命令を使用してはいけません。タスク切り替え時に倍精度浮動小数点レジスタの退避/復帰を行っていない為、タスク間で倍精度浮動小数点レジスタの値がぐちゃぐちゃに入り乱れることになる為です。

    (B-2) レジスタ一括退避機能(レジスタバンク機能)でも何かしら使用方法に制約が発生するかも知れません、、、(こちらは許容範囲内となる可能性も高そうかなと漠然とですが思います、、、)

    (B-3) 他には?

    (B-Fix) 最終的にはRTEL社にRXv3ポートレイヤを作って頂く。(あるいは、ルネサスさん、もしくはオープンソースライセンスなので有志の方々、というのも。) なお、倍精度浮動小数点演算命令やレジスタ一括退避機能(レジスタバンク機能)を使用していなければ、そのまま使い続けられると思います(要確認)。

    ● RX72T

    (C-1) レジスタ一括退避機能(レジスタバンク機能)では何かしら使用方法に制約が発生するかも知れません、、、(こちらは許容範囲内となる可能性も高そうかなと漠然とですが思います、、、)

    (C-2) 他には?

    (C-Fix) 最終的にはRTEL社にRXv3ポートレイヤを作って頂く。(あるいは、ルネサスさん、もしくはオープンソースライセンスなので有志の方々、というのも。) なお、レジスタ一括退避機能(レジスタバンク機能)を使用していなければ、そのまま使い続けられると思います(要確認)。

    ● RX66T

    (D) たぶん大丈夫だと思います(要確認)。

  • NoMaYさん

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

    FreeRTOS.orgへの投稿、ありがとうございます。hirakuni45さんの活動にも感謝であります。
    また「FreeRTOS RXパッケージ v10.0.03での問題点と対処案」についてデバイス毎の影響範囲情報まとめ、
    こちらも大変ありがたいものです。早急に対応を進めます。

    以上です