Top Page [◀◀]  2   3   4   5   6   7   8   9   ... [▶▶Last Page

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コンポーネントの表示は以下の画面コピーの通りでした。


  • In reply to NoMaY:

    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
     

  • In reply to NoMaY:

    こんにちは。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
    画面コピー

     

  • In reply to NoMaY:

    NoMaYさん

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

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

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

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

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

    以上です
  • In reply to シェルティ:

    NoMaYさん

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

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

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

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

    以上です
  • In reply to シェルティ:

    シェルティさん、こんにちは。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) たぶん大丈夫だと思います(要確認)。

  • In reply to NoMaY:

    NoMaYさん

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

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

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

    素朴に考えれば、ここは、FreeRTOS.org(RTEL社)にRXv3 DPFPU対応ポートレイヤの予定があるかどうかを尋ねてみる、というのがまず第一かな、という気がしてきましたので、尋ねてみます。

  • こんにちは。NoMaYです。

    FreeRTOS.org(RTEL社)にRXv3 DPFPU対応ポートレイヤの予定があるか尋ねたところ、以下の返事でした。対応することはやぶさかではない。まずハードウェアを入手しないといけない。急いでいる人がいれば作ってプルリクエストすると良い。といった感じですかね。私はRX72N Envision Kitを入手したので、これで試しに作業を進め、うまくいけばプルリクエストまで出してみようかなと思います。

    Q)

    Is there any plan of such RXv3 port layer? If so, is there any rough schedule? Because...
    以後省略

    A)

    Yes it would be good to have upstream support for this. I would have to get the hardware first. We also accept pull requests https://github.com/FreeRTOS/FreeRTOS-Kernel if somebody needed this sooner - we would still need to get hardware but the task would be faster as we would just need to verify the testing.

  • こんにちは。NoMaYです。

    > RX72N Envision Kitを入手したので、これで試しに作業を進め、うまくいけばプルリクエストまで出してみようかなと

    きっと、ポートレイヤだけでプルリクエストを出す訳にはいかなくて、RTOSDemoプログラムまで作らないといけないと思いますので、以下のようなRTOSDemoプログラムを作る作業を一緒に進めようと思います。

    ・RX71M RSK+用のRTOSDemoプログラムをベースに、倍精度浮動小数点演算に関するデモ(というかテスト)項目を追加する
    ・現状、FreeRTOSプロジェクトではCGコンポーネントが使えないのでFIT R_SCI_RXモジュールを使うように書き換える
    ・r_rx_compiler.hのマクロを使い、同じソース記述で以下の3種類のコンパイラに対応させるように書き換える
    ・開発環境は以下の4パタンに対応する(e2 studioに関してはFreeRTOSプロジェクト、他はFreeRTOSプロジェクトもどき)
      CC-RX/e2 studio
      GNURX/e2 studio
      CC-RX/CS+
      ICCRX/EWRX
    ・3種類のコンパイラは最新版を使用する、3種類の統合開発環境も最新版を使用する
    ・RX Driver Packageは最新版を使用する、単体RXスマートコンフィグレータも最新版を使用する
    ・CC-RX/GNURXのコンパイルオプション等は私が投稿時に用いているものに設定する(ICCRXに関しては今後調査する)
    ・HOCOを使うようにして、RX72N RSK+とRX72N Envision Kitで外部発振周波数が異なる件を吸収する

  • In reply to NoMaY:

    NoMaYさん

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

    本活動、大変助かります。方針確認しました。問題なさそうです。
    こちら開発チームにもFreeRTOSのGitHubとNoMaYさんのアイデアを見ておくよう指示しております。
    何か実装上の課題などがありましたら、教えてください。こちらでも考えてみたいと思います。

    こちら「GitHubを使う」ということだけで社内でいろんな手続きや交渉が必要な状況で
    プルリクエスト1個だすのも一苦労といったところです。
    体制整備を進めてルネサスからもGitHub上の各本家にプルリクエストをどんどん出していけるようにしたい、
    と考えています。

    引き続き相談させてください。

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

    FreeRTOSのRenesas RXのポートレイヤのIAR版を見ていて気付いたのですが、IAR版はコンフィグレーションファイルがFreeRTOSConfig.hの他に(ポートレイヤのアセンブラソースの為)もう1つPriorityDefinitions.hがありますね。将来のRXスマートコンフィグレータでのIAR版のサポート(があると思っています)が、ちょっと面倒そうですね。(RXスマートコンフィグレータはIAR版に対して2つコンフィグレーションファイルを扱わなければならなくなるから。)

    何か対策を考えておられますか?もし、私の方でPriorityDefinitions.hを不要にするように改造したら、(うまくいくかどうかは今後の作業の結果次第として、) そちらで困った問題が発生するようなことはありますか?(あと、FreeRTOS.orgの方で受け入れられるかという点もありますが。)

    ●CC-RX版のポートレイヤと関連ファイル

    port.c
    port_asm.src
    portmacro.h
    FreeRTOSConfig.h

    ●GNURX版のポートレイヤと関連ファイル

    port.c
    portmacro.h
    FreeRTOSConfig.h

    ●IAR版のポートレイヤと関連ファイル

    port.c
    port_asm.s
    portmacro.h
    FreeRTOSConfig.h
    PriorityDefinitions.h

    なお、PriorityDefinitions.hは以下の通りでした。(定型のCopyrightの部分は省略しました。)

    #ifndef PRIORITY_DEFINITIONS_H
    #define PRIORITY_DEFINITIONS_H

    #ifndef __IASMRX__
        #error This file is only intended to be included from the FreeRTOS IAR port layer assembly file.
    #endif

    /* The interrupt priority used by the kernel itself for the tick interrupt and
    the pended interrupt.  This would normally be the lowest priority. */
    #define configKERNEL_INTERRUPT_PRIORITY         1

    /* The maximum interrupt priority from which FreeRTOS API calls can be made.
    Interrupts that use a priority above this will not be effected by anything the
    kernel is doing. */
    #define configMAX_SYSCALL_INTERRUPT_PRIORITY    4

    #endif /* PRIORITY_DEFINITIONS_H */

     

Top Page [◀◀]  2   3   4   5   6   7   8   9   ... [▶▶Last Page