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、に設定して試しました。

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

    GitHubのFreeRTOS-KernelのmasterにmergeされたDinh Van NamさんのGNURX向けポートレイヤなのですが、他の方の支援があってmergeされたものの、その方の修正に間違いがあって、RX100ポートレイヤが動作しなくなってしまっていることに気付きました。以下のように、上側コードの赤文字部分が下側コードに無く、当然ながら割り込み関数も割り込みベクタも意図通りに扱われません。

    portable/GCC/RX100/port.c

    Dinh Van Namさんのプルリクエスト:

    #if defined(configTICK_VECTOR)
    void vPortSoftwareInterruptISR( void ) __attribute__((naked, vector( R_BSP_SECNAME_INTVECTTBL, VECT_ICU_SWINT )));
    #else
    void vPortSoftwareInterruptISR( void ) __attribute__((naked));
    #endif

     

    #if defined(configTICK_VECTOR)
    void vPortTickISR( void ) __attribute__((interrupt( R_BSP_SECNAME_INTVECTTBL, _VECT( configTICK_VECTOR ) )));
    #else
    void vPortTickISR( void ) __attribute__((interrupt));
    #endif

    支援して下さった方の修正:

    #if ( configINCLUDE_PLATFORM_H_INSTEAD_OF_IODEFINE_H == 1 )

        R_BSP_PRAGMA_INTERRUPT( vSoftwareInterruptISR, VECT( ICU, SWINT ) )
        R_BSP_ATTRIB_INTERRUPT void vSoftwareInterruptISR( void ) __attribute__( ( naked ) );

    #else /* configINCLUDE_PLATFORM_H_INSTEAD_OF_IODEFINE_H */

        void vSoftwareInterruptISR( void ) __attribute__( ( naked ) );

    #endif /* configINCLUDE_PLATFORM_H_INSTEAD_OF_IODEFINE_H  */

     

    #if ( configINCLUDE_PLATFORM_H_INSTEAD_OF_IODEFINE_H == 1 )

        R_BSP_PRAGMA_INTERRUPT( vTickISR, _VECT( configTICK_VECTOR ) )
        R_BSP_ATTRIB_INTERRUPT void vTickISR( void ); /* Do not add __attribute__( ( interrupt ) ). */

    #else /* configINCLUDE_PLATFORM_H_INSTEAD_OF_IODEFINE_H */

        void vTickISR( void ) __attribute__( ( interrupt ) );

    #endif /* configINCLUDE_PLATFORM_H_INSTEAD_OF_IODEFINE_H */

     

  • NoMaYさん

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

    RX100のポートレイヤの件、Dinh Van Namさんと相談しておきます。
    Amazon FreeRTOSとしての認証対象はRX65Nのみなので、認証には影響なしということで
    他が多少バグっていても「近いうちにもう一回プルリクエストする」ということに
    AWSとの折衝上はしてありますので緊急対応は不要です。

    それから、NoMaYさんにいただいたプルリクエストにあるサンプルコードのレビュー結果は以下の通りです。
    総じて問題なし、IDEに対しては「過去の古いIDEには対応しない」で統一しました。

    e2 studio v5.4の件はシェルティの対応がたいへん遅いので、AWSメンバが調べてくれました。
    申し訳ない気持ちでいっぱいです。精進します。以下テキストはAWSメンバの書いたものに
    シェルティが「OK」と書き込んで返信したものです。
    同様の内容をプルリクエストにもDinh Van Namさんが書き込みます。

    - Renesas Demo project
    - E2 studio update
    - Make_RX600_RX64M_RSK_Renesas_e2studio_project_better
    github.com/.../231  Verified, can be merged
    Renesas: OK.
    - Upgrade_GCC_project_for_e2v780_in_RX200_RX231-RSK_GCC_e2studio_IAR
    github.com/.../255  Verified, but need to confirm the compatibility issue with Renesas (will not be unable to build using e2 studio v5.4 or earlier after merge)
    Renesas: OK. Renesas would like user to move to latest version of e2 studio.
    - Upgrade_GCC_project_for_e2v780_in_RX700_RX71M_RSK_GCC_e2studio_IAR
    github.com/.../257  Verified, but need to confirm the compatibility issue with Renesas (will not be unable to build using e2 studio v5.4 or earlier after merge)
    Renesas: OK. Renesas would like user to move to latest version of e2 studio.
    - Upgrade_GCC_project_for_e2v780_in_RX100_RX113-RSK_GCC_e2studio_IAR
    github.com/.../258  Verified, but need to confirm the compatibility issue with Renesas (will not be unable to build using e2 studio v5.4 or earlier after merge)
    Renesas: OK. Renesas would like user to move to latest version of e2 studio.
    - Build: Upgrade GCC project files for e2 studio v7.8.0 in Demo/RX600_RX64M_RSK_GCC_e2studio folder
    github.com/.../263  Verified, but need to confirm the compatibility issue with Renesas (will not be unable to build using e2 studio v5.4 or earlier after merge)
    Renesas: OK. Renesas would like user to move to latest version of e2 studio.

    - Build Error Fix
    - Fix_RX100-RSK_Renesas_e2studio_build_error
    github.com/.../228  Verified, can be merged
    Renesas: OK.
    - Fix_RX200_RX231_RSK_GCC_e2studio_IAR_IAR_build_error
    github.com/.../239  Verified, can be merged
    Renesas: OK.
    - Fix_RX600_RX64M_RSK_GCC_e2studio_build_error
    github.com/.../245  Verified, can be merged
    Renesas: OK.
    - Resolve stdio and stream_buffer link errors in RX64M demo (#42) #43
    github.com/.../43  Can be Closed (if PR#245 get merged)
    Renesas: OK.

    以上です
  • NoMaYさん

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

    ターゲットボード向けのサンプルですが以下のように意思表示しました。
    こちらはAWSの見解待ちです。(Ishiguro = シェルティです)

    Additional comment (very low priority):
    Ishiguro would like add samples for some of Target Boards for RX MCUs (RX65N, RX231, RX130).
    www.renesas.com/.../rx-family-target-board.html

    I think current samples corresponding to RSK (Renesas Starter Kit) series but these boards are quite expensive like 500US$ over. (But have complete capability for whole of RX MCUs application evaluation)
    I think further samples corresponding to TB (Target Boards) series that these boards are quite low price like about 15US$ and Emulator circuit on boards. (But have need adding circuits for each RX MCUs application evaluation)

    So I would like to add TB boards samples on FreeRTOS sample repo. What do you think?


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

    ビルド関係のプルリクエストですが、1つ足りていなかったです。以下がリストから漏れています。

    Upgrade GCC project files for e2 studio v7.8.0 in Demo/RX100-RSK_GCC_e2studio folder
    github.com/FreeRTOS/FreeRTOS/pull/264

    それで、私のプルリクエストなのですが、これで終わりではなくて、もうちょっと続くと思います。(既に出してある分のみならず、この後も新規のプルリクエストを出すつもりです。)

    最近GitHubに慣れてきて思ったのですが、かふぇルネのスレッドにそのリストを返信しても埋もれてしまって探し難いと思いますので、GitHubのルネサスさんのリポジトリにissueのページを追加して頂いて、そちらに投稿するようにしたいのですが、どうでしょうか?

    また、今現在、GitHubのルネサスさんのリポジトリには、FreeRTOS-KernelのForkはあるのですが、FreeRTOSのForkがありません。新規に出したいプルリクエストにFreeRTOSのリポジトリのものもあるのですが、FreeRTOSの方もForkして頂ければ、その分はそのFreeRTOSのForkの方のissueに投稿するようにしたいと思います。どうでしょうか?

    それでも、プルリクエストのような今あるソースコードに密着した細かい話では無いもの(あるいは細かい話になる前の段階のもの)に関しては、このまま、かふぇルネに投稿しようかと思うのです。

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

    TB-RX65N, TB-RX231, TB-RX130のFreeRTOSデモプログラムですが、ちなみに、かふぇルネへの以下の投稿の続きの投稿として、以前から自分のリポジトリでは、やるつもりでいたものです。(それから、RL78/G14 Fast Prototyping Boardでやっていたような別のタイプのFreeRTOSサンプルプログラムも、これらのボードでもやるつもりでいます。static allocation, UART送受信, DMA/DTC, 等あるもの。)

    FreeRTOSをFITやCG(や追々PDG2でも?)と一緒に使うサンプルプログラムをCSplusでビルド出来るプロジェクトにしてみた

    japan.renesasrulz.com/cafe_rene/f/forum21/4826/freertos-fit-cg-pdg2-csplus/32094#32094

    作業結果的に、st1011さんが移植されたRX65N_TB_FreeRTOS_Full_Demo版を、FreeRTOS 10.2.1のソースとe2 studio v7.4.0で生成したFreeRTOSプロジェクトのソースを使って、CS+プロジェクトへ焼き直した形になりました。以下、プロジェクトのファイル一式です。(CS+ V8.01+CC-RX V2.03でビルド)(e2 studio用.project/.cproject等を同梱(zipファイルをe2 studioに直接インポート可能)) なお、長時間運転は検証中です。


    japan.renesasrulz.com/cafe_rene/f/forum21/4826/freertos-fit-cg-pdg2-csplus/32081#32081

    昨日の比較を踏まえて、まずは、e2 studioのFreeRTOSプロジェクトのフォルダ構成とグルー部分のソースを尊重しつつ、st1011さんがされたようなFull Demoの移植を、kern-gtさんがされたようにCS+で行う、ということをやってみようかなと思います。その時、スタンドアロン版のスマートコンフィグレータがRXファミリ Renesas FreeRTOSモジュールに現状は未対応のようですので、その代わりと言っては何ですが、出来るだけFreeRTOS 10.2.1のソースを使用するようにしようかと思います。それがうまく出来たら、RX231版/RX130版、GNURX版、C++プロジェクト版を作成する、というようにやってみようかなと思います。


    RL78 FreeRTOS APIを特別なおまじない記述無しで割り込みルーチンから呼び出せるようにしてみた(CC-RL/GNURL78)
    japan.renesasrulz.com/cafe_rene/f/forum21/5845/rl78-freertos-api-cc-rl-gnurl78/34947#34947

    ここまでのCall Walker (CC-RL+CS+)対応作業(+α)を纏めてzipファイルに固めました。なお、スタックサイズ設定は以下のようにfreertos_start.hに記述することにしました。(他方、今回のGNURL78での値はざっくり決め打ちの値です。GNURL78でのスタック使用量の妥当な見積もり方法に関しては後日考えます。)


    rl78g14fpb_freertos_sampleprog1_ccrl_c_csplus_20200503.zip (*1,*2,*3)    476KB
    rl78g14fpb_freertos_sampleprog2_ccrl_c_csplus_20200503.zip (*1,*2,*3)    465KB
    rl78g14fpb_freertos_sampleprog3_ccrl_c_csplus_20200503.zip (*1,*2,*3)    527KB
    rl78g14fpb_freertos_sampleprog1_gnurl78_c_e2v780_20200503.zip (*1,*2,*4)   418KB
    rl78g14fpb_freertos_sampleprog2_gnurl78_c_e2v780_20200503.zip (*1,*2,*4)   408KB
    rl78g14fpb_freertos_sampleprog3_gnurl78_c_e2v780_20200503.zip (*1,*2,*4)   469KB

    sampleprog1: UART送受信をDTCで行う版
    sampleprog2: UART送受信を割り込みのみで行う版
    sampleprog3: UART受信をリングバッファで行いUART送信を割り込みのみで行う版

  • NoMaYさん

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

    打合せ席上斜め読み状態で全文読めてない状態で申し訳ありませんが、
    以下「すぐできること」対応完了です。

    >>GitHubのルネサスさんのリポジトリにissueのページを追加して頂いて、そちらに投稿するようにしたいのですが、どうでしょうか?

    賛成です。作りました。日本語で書いていただいてもOKです。
    Dinh Van Namさんは日本語/英語/C言語/python言語/母国語もバリバリのスーパーマンです。
    github.com/.../issues

    > GitHubのルネサスさんのリポジトリには、FreeRTOS-KernelのForkはあるのですが、
    > FreeRTOSのForkがありません。新規に出したいプルリクエストに
    > FreeRTOSのリポジトリのものもあるのですが、FreeRTOSの方もForkして頂ければ、
    > その分はそのFreeRTOSのForkの方のissueに投稿するようにしたいと思います。
    > どうでしょうか?

    賛成です。作りました。IssueもONにしておきました。
    github.com/.../FreeRTOS

    以上です
Reply
  • NoMaYさん

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

    打合せ席上斜め読み状態で全文読めてない状態で申し訳ありませんが、
    以下「すぐできること」対応完了です。

    >>GitHubのルネサスさんのリポジトリにissueのページを追加して頂いて、そちらに投稿するようにしたいのですが、どうでしょうか?

    賛成です。作りました。日本語で書いていただいてもOKです。
    Dinh Van Namさんは日本語/英語/C言語/python言語/母国語もバリバリのスーパーマンです。
    github.com/.../issues

    > GitHubのルネサスさんのリポジトリには、FreeRTOS-KernelのForkはあるのですが、
    > FreeRTOSのForkがありません。新規に出したいプルリクエストに
    > FreeRTOSのリポジトリのものもあるのですが、FreeRTOSの方もForkして頂ければ、
    > その分はそのFreeRTOSのForkの方のissueに投稿するようにしたいと思います。
    > どうでしょうか?

    賛成です。作りました。IssueもONにしておきました。
    github.com/.../FreeRTOS

    以上です
Children
No Data