RX SmartConfiguratorで気になった点とか改善する案とか報告してみるスレッド

こんにちは。NoMaYです。

過去にも同じようなスレッドを立てていましたが、CC-RXとGNURXで2つ立てていて、スレッドを使い分けるのも少し不便な気がしましたので、両者を区別せず投稿するスレッドを立ててみました。(e2 studioのプラグイン版もCS+の単体版もいっしょくたです。)

CS+でTB-RX140を使おうとして、単体RXスマートコンフィグレータ V2.10.0では未対応だったことに気付き、アップデートマネージャを起動してみたところ、V2.11.0がリリースされていましたのでアップデートしました。V2.11.0を触っていて気付いたのですが、CGコンポーネントのコードを再生成させた時、変更の無いソースファイルは再生成されなくなり、ファイルのタイムスタンプが変わらないようになっていました。

この挙動が設計意図なのか何かの拍子にそうなってしまっただけなのかは分からないのですが、再コンパイルする時間の短縮になるかも!と思ったのも束の間、以下の2つのファイルが変更が無くても毎回再生成されるので、思惑通りにはならないことに気付きました、、、以下の2つのファイルに関しても同様に変更の無い場合にはファイルを再生成しないように出来ないものでしょうか、、、

(1) platform.h (実は何故このファイルがコード再生成時に毎回タイプスタンプが更新されるのか不思議です)
(2) r_bsp_config.h (RX140の場合このファイルだけですがRX671とかの場合はr_bsp_interrupt_config.hもかもです)

[余談]

以下のニュース記事を読んでいて以下の解説に気付きました。ルネサスさんの取締役の人たちはソフトウェア開発ツールも含んで話をされていたのかな、、、まあ、過去形では無くて永遠に現在進行形であるべきテーマですね。(もっとも、Automotive部門の人の話だったようですけれども、、、)

新しい方向性を見出して走り出したルネサス、Progress Updateから見えたもの
2021/10/01 16:37 著者:大原雄介
news.mynavi.jp/article/20211001-1988188/

さてそのIIBUの大きな柱がMCUであることは論を待たないが、2025年までに大幅にシェアを引き上げる、としている(Photo19)。
。。。
これについては、後のAutomotive向けの質疑応答の中で出てきた話ではあるのだが、そもそもルネサスのMCUが使われなかったのは、1つは「良いかもしれないけど使いにくい」という部分があり、こうした部分を徹底的に改善した事で顧客に使って貰いやすくなったという回答があり、これはIIBUにもおそらく共通する話であろうかと思う。

Parents
  • こんにちは。NoMaYです。

    RXスマートコンフィグレータ自体の話では無いのですけれども、最近、以下のスレッドに関わったのですが、FITのR_SCI_RXモジュールのDMA/DTCのサポートに関して以下のことに気付きました。(DMA/DTCのサポートは、割と最近追加された機能だと記憶しています。)

    DMACAを利用したSCI 非同期通信で、2回目の受信ができません
    community-ja.renesas.com/cafe_rene/forums-groups/mcu-mpu/rx/f/forum5/9761/dmaca-sci-2

    気付いたこと:

    (1) DMA/DTCを使った場合にR_SCI_Control()では送信完了や受信完了を知る方法が無い

    ・ 一応、SCI_CMD_CHECK_XFER_DONEという転送完了をチェックするコマンドはあるけれどもUARTでは使えない。

    ・ もちろん、確かに、コールバック関数でのイベント判定で転送完了をチェックすることは出来るけれども、RL78のコード生成機能の過去10年程の事例から(チョコさんの過去の回答の事例から)推測されることとして、コールバック関数内でフラグを立て、スーパーループでフラグをチェックする、というやり方が思い浮かばないユーザさんがそれなりにいらっしゃるように見受けられます。

    ・ 他方で、通常の(DMA/DTCを使わない)UART受信では、SCI_CMD_RX_Q_BYTES_AVAIL_TO_READコマンドで受信完了(というのは適切な表現では無いとは思いますが)を知ることが出来ますけれども、それとのバランスが良くないように思いました。

    ・ もっとも、通常の(DMA/DTCを使わない)UART送信では、もともとコールバック関数を使わなければ送信完了を知ることは出来ないものである、ということもありますので、先程の「バランスが良くないように」というのは過度に話を広げてしまっているかも、とも思ってはいます。

    (2) UARTのDMA受信の場合に2回目のR_SCI_Receive()呼び出しで謎のエラーが返る

    ・ 上のスレッドで気付いたこととして、R_SCI_RXモジュールのUARTのDMA受信のコードにバグがある、と思われます。詳細も上のスレッドに投稿されています。

    [追記]

    (3) 一旦受信完了してから、次に受信動作を開始するまでの間に、もしもデータが来てしまった場合の動作は?

    ・ 無視するか、何らかのエラーとするか、になるとは思いますが、少なくとも以後の受信が全く出来なくなる、というのは避ける必要がありそうだと思いました。

    ・ 過去、RL78で、DTCを使用した受信を試していた時、内蔵周辺機能の事情もあったかも知れませんが(かなり忘れていますので)、まさにDTCをイネーブルする直前にデータが来てしまったような場合の対処で悩んだ記憶があります。(そのデータ受信による意図しない単体受信割り込みと正規のDTC受信完了割り込みを区別することが悩ましかったような記憶があります。)

    ・ 通常の(DMA/DTCを使わない)UART受信でも、リングバッファを使用しない場合は、同様の状況がありそうですけれども、そこは調べて無いです。

Reply
  • こんにちは。NoMaYです。

    RXスマートコンフィグレータ自体の話では無いのですけれども、最近、以下のスレッドに関わったのですが、FITのR_SCI_RXモジュールのDMA/DTCのサポートに関して以下のことに気付きました。(DMA/DTCのサポートは、割と最近追加された機能だと記憶しています。)

    DMACAを利用したSCI 非同期通信で、2回目の受信ができません
    community-ja.renesas.com/cafe_rene/forums-groups/mcu-mpu/rx/f/forum5/9761/dmaca-sci-2

    気付いたこと:

    (1) DMA/DTCを使った場合にR_SCI_Control()では送信完了や受信完了を知る方法が無い

    ・ 一応、SCI_CMD_CHECK_XFER_DONEという転送完了をチェックするコマンドはあるけれどもUARTでは使えない。

    ・ もちろん、確かに、コールバック関数でのイベント判定で転送完了をチェックすることは出来るけれども、RL78のコード生成機能の過去10年程の事例から(チョコさんの過去の回答の事例から)推測されることとして、コールバック関数内でフラグを立て、スーパーループでフラグをチェックする、というやり方が思い浮かばないユーザさんがそれなりにいらっしゃるように見受けられます。

    ・ 他方で、通常の(DMA/DTCを使わない)UART受信では、SCI_CMD_RX_Q_BYTES_AVAIL_TO_READコマンドで受信完了(というのは適切な表現では無いとは思いますが)を知ることが出来ますけれども、それとのバランスが良くないように思いました。

    ・ もっとも、通常の(DMA/DTCを使わない)UART送信では、もともとコールバック関数を使わなければ送信完了を知ることは出来ないものである、ということもありますので、先程の「バランスが良くないように」というのは過度に話を広げてしまっているかも、とも思ってはいます。

    (2) UARTのDMA受信の場合に2回目のR_SCI_Receive()呼び出しで謎のエラーが返る

    ・ 上のスレッドで気付いたこととして、R_SCI_RXモジュールのUARTのDMA受信のコードにバグがある、と思われます。詳細も上のスレッドに投稿されています。

    [追記]

    (3) 一旦受信完了してから、次に受信動作を開始するまでの間に、もしもデータが来てしまった場合の動作は?

    ・ 無視するか、何らかのエラーとするか、になるとは思いますが、少なくとも以後の受信が全く出来なくなる、というのは避ける必要がありそうだと思いました。

    ・ 過去、RL78で、DTCを使用した受信を試していた時、内蔵周辺機能の事情もあったかも知れませんが(かなり忘れていますので)、まさにDTCをイネーブルする直前にデータが来てしまったような場合の対処で悩んだ記憶があります。(そのデータ受信による意図しない単体受信割り込みと正規のDTC受信完了割り込みを区別することが悩ましかったような記憶があります。)

    ・ 通常の(DMA/DTCを使わない)UART受信でも、リングバッファを使用しない場合は、同様の状況がありそうですけれども、そこは調べて無いです。

Children
No Data