お世話になります。
r_t4_driver_rx 1.09を使用しています。
タイマー割り込みの中で、R_ETHER_LinkProcess()を呼んでいるのですが、この関数の処理時間がRX72N 240MHzで1msかかることが多々あります。
「if (ETHER_FLAG_ON_LINK_ON == lchng_flag[channel])」が真だった時です。
現状割り込みで1ms占有されると困るのですが、このライブラリを使用する以上はしょうがいないことなのでしょうか。
以上、よろしくお願いいたします。
以前 RX72M を使用する時、同じ問題を直面しました。
最近ルネサスサイドで RX72M でFreeRTOSも使用できるようになりました。
freeRTOS を使用して、タスクの中にその関数をコールしたら、解決しました。
”RX72M Group 通信ボード Modbus スタートアップマニュアル” のような最新Ehternetサンプルソフトをダウンロードして使用しました。
ご参考まで
ご返答ありがとうございます。
現状割り込みで1ms占有されると困るのですが、このライブラリを使用する以上はしょうがないということなのですね。
ありがとうございました。
定期的に起こして処理をさせたいけど、ほとんどが数十μ秒で済むのに、時々、数msみたいな処理時間の処理はソフトウェア割り込みでやるといいと思います。ICUから有効化できます。ソフトウェア割り込みを1ms周期タイマーで起床させ、タイマーの割り込み優先度より低い優先度でソフトウェア割り込みを起床させ、そこでその処理をやるということです。先行しているソフトウェア割り込みが終了していない時は、ソフトウェア割り込みを場合によってペンディング中など通知させる仕組みを作ることでやれると思います。