FIT R_SCI_RXモジュールでprintfをfrom inside interrupt routine内から行えるかどうか考えてみるスレッド

こんにちは。NoMaYです。

最近、以下のスレッドに関わったのですが、そういえばFITのR_SCI_RXモジュールでは送信リングバッファを使えますので、仕組み上は、割り込みルーチン内からでもprintfを使うことが出来ても良さそうな気がします。ということで、いつものように、ちょっと好奇心からスレッドを立ててみました。いつものように、ぼちぼちと続きます。

Config_ICUでのIRQの設定について
community-ja.renesas.com/cafe_rene/forums-groups/beginners/f/002-2095199602/9604/config_icu-irq

本当は、割り込みルーチン内からデバッグコンソールへ出力する方法を考えたいところですけれども、以下の理由で今回は保留です。

(1) 割り込み駆動方式でデバッグコンソールへ文字書き込みする方法が無い(少なくとも公開されている情報では出来ない)
(2) ポーリング方式でデバッグコンソールへ文字書き込みする方法では割り込みルーチン内で使うには性能上の懸念がある

[追記]

こんなことを考えたのも、以前に別スレッドにURLを書いた個人事業主?さんが、こういう記事を執筆されていましたのを、たまたま見掛けたからかも知れません。

RAファミリprintfデバッグ3方法
2022年10月7日 WithHappy
happytech.jp/wordpress/2022/10/07/ra-family-printf-debug-3-method/
 

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

    脱線ついでなのですけれども、e2 studioでE1/E2LiteでのRXマイコンのオンチップトレースでデータクオリファイトレース機能を使用して、別スレッドの案件のIRQ割り込みの遅延を計る、ということをしてみました。昨日、e2 studioを動かしていて、どうもトレース機能の時間カウンタの差分表示に計算ミス不具合があるようでしたので、今日は、トレース機能の時間カウンタのプリスケーラを使うようにして、おかしな値が目立たないようにしました。

    試したプログラムでは以下のようなことをしています。

    (1) P32をIRQ2-DS端子割り込み入力として定義しておきながらもP32ポート出力としても使用出来るように小細工をする
    (2) TRM0タイマ割り込みで100μs毎に割り込みを発生させる
    (3) TRM0タイマ割り込み処理では発生回数を数えて5ms毎にP32出力の0/1を反転させると同時にdebug変数に0/1を書く
    (4) IRQ2-DS端子割り込みで立ち上がりエッジに割り込みを発生させる
    (5) IRQ2-DS端子割り込み処理にてdebug変数に0x96969696を書く
    (6) debug変数への書き込みをトレースする

    (4') デジタルノイズフィルタはPCLK/64(≒0.94MH≒=1.07μs)として3回一致(2.1μs~3.2μsぐらい)で有効と判定される

    ソースは以下の画面コピーの1枚目の通り、トレース結果は2枚目と3枚目の通り、でした。別スレッドの案件では、IRQ割り込みの受付(というかどうもIRQ割り込みのみ)が3~4ms程も遅延することがあるようだったのですが、手元ではそのようなことは見受けられない、ということが分かったところです。

    以下、e2 studioの画面コピーです。




     

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

    脱線ついでなのですけれども、e2 studioでE1/E2LiteでのRXマイコンのオンチップトレースでデータクオリファイトレース機能を使用して、別スレッドの案件のIRQ割り込みの遅延を計る、ということをしてみました。昨日、e2 studioを動かしていて、どうもトレース機能の時間カウンタの差分表示に計算ミス不具合があるようでしたので、今日は、トレース機能の時間カウンタのプリスケーラを使うようにして、おかしな値が目立たないようにしました。

    試したプログラムでは以下のようなことをしています。

    (1) P32をIRQ2-DS端子割り込み入力として定義しておきながらもP32ポート出力としても使用出来るように小細工をする
    (2) TRM0タイマ割り込みで100μs毎に割り込みを発生させる
    (3) TRM0タイマ割り込み処理では発生回数を数えて5ms毎にP32出力の0/1を反転させると同時にdebug変数に0/1を書く
    (4) IRQ2-DS端子割り込みで立ち上がりエッジに割り込みを発生させる
    (5) IRQ2-DS端子割り込み処理にてdebug変数に0x96969696を書く
    (6) debug変数への書き込みをトレースする

    (4') デジタルノイズフィルタはPCLK/64(≒0.94MH≒=1.07μs)として3回一致(2.1μs~3.2μsぐらい)で有効と判定される

    ソースは以下の画面コピーの1枚目の通り、トレース結果は2枚目と3枚目の通り、でした。別スレッドの案件では、IRQ割り込みの受付(というかどうもIRQ割り込みのみ)が3~4ms程も遅延することがあるようだったのですが、手元ではそのようなことは見受けられない、ということが分かったところです。

    以下、e2 studioの画面コピーです。




     

Children
No Data