RX210のFIT

khiraoka5です

いままで、RX65N,RX651を中心に仕事をしておりましたが、

都合で、RX210を使うことになりました。

同じようなものかなと思っていたら、

FITの対応や、コード生成が未対応などかなり違うことが判りました。

SCIや、PWMなどは、FITで何とかなったのですが、

I2CはFITが無く、RX65Nの時のFITを見ても、RX210は対応していないようです。

カフェるねでも、2013年ごろにアプリケーションノートで苦労して作成されている方の

過去ログを拝見しましたが、このように作るしかないのかと悩んでおります。

皆さんどうされてますか?

Parents
  • khiraoka5様
    Peripheral Driver Generatorをご存じでしょうか。コード生成のようにGUIで設定して、ソースを出力します。RPDLというライブラリを呼ぶ方式です。FITとは異なりGUIで設定するのですが、I2Cもサポートしております。
    一度ご参照ください。
    https://www.renesas.com/pdg
  • khiraoka5です
    その後の状況ですが、とりあえず、ハードウェアマニュアルを参考に作成しました
    何とか動きました。
    SPIなどと比べるとBUS HUNGUPの処理などやはり複雑だなとの思いました。
    やはり、エラー処理とか大丈夫かなとちょっと心配になっています。
    そこで、PDGを動かしてみたのですが、
    FITを使って、でBSP、SCI、MTUなどのドライバーを作成しているので、それを残して
    RIICの部分だけPDGにするのは、何か難しいような感じがしたのですが、
    そういう使い方去れてる方おられますでしょうか?
    絶対できないとは思わないのですが、複雑そう?
    ご意見、頂ければ幸いです。
  • khiraoka5さん、こんにちは。NoMaYです。

    別スレッド(Amazon FreeRTOS)でRX631+FIT+PDG2+諸々をやって(ここしばらく(2ヶ月ほど)他のことに気を取られて中断中ですが)いて感じていることですが、やはり複雑だと思います。記憶を手繰ると、以下のようなことがありました。(GNURXやC++に特有な件は除いても) (特定のモジュールだけの為だけでなく汎用的にやろうとして余計にややこしくしてしまった面もありますが)

    (1) bool型のサイズが違う:PDG2のバイナリ形式ライブラリは4byte、FITはデフォルトのC99の設定では1byte
    (2) iodefine.hが2重持ちになる&内容が違う:PDG2ではiodefine_RPDL.h、FITはiodefine.h、内容が違うのは時期のせい?
    (3) レジスタライトプロテクトの解除/再設定のルーチンが重複する&各ルーチンの処理も違う
    (4) 関数や関数形式マクロの名前で同じものがある(同じ名前でも違う内容です)
    (5) リセットベクタ、例外ベクタテーブル、割り込みベクタテーブルが重複する&リセットや例外の処理も違う
    (6) グループ割り込み(RX210には無いです)ルーチンが重複する&各ルーチンの処理も違う
    (7) さらにグループ割り込みでRSPIとSCIの2つのモジュールの処理が同一グループに属している
    (8) PDG2では端子割り込み処理コードが割り込み処理共通ソースに含まれてしまっている
    (9) PDG2のBRK割り込み処理がFITのそれと異なる何か独特なものになっている(割り込み禁止で実行する共通ルーチン的な?)

    [追記]

    まだ他にもありました。

    (10) double型のサイズ設定が違う:PDG2は8バイト長が必要、FIT(というかCC-RX)のデフォルトは4バイト長
    (11) PDG2に含まれるライブラリソースでヘッダファイル名に間違いがあってコンパイル出来ないものがある

Reply
  • khiraoka5さん、こんにちは。NoMaYです。

    別スレッド(Amazon FreeRTOS)でRX631+FIT+PDG2+諸々をやって(ここしばらく(2ヶ月ほど)他のことに気を取られて中断中ですが)いて感じていることですが、やはり複雑だと思います。記憶を手繰ると、以下のようなことがありました。(GNURXやC++に特有な件は除いても) (特定のモジュールだけの為だけでなく汎用的にやろうとして余計にややこしくしてしまった面もありますが)

    (1) bool型のサイズが違う:PDG2のバイナリ形式ライブラリは4byte、FITはデフォルトのC99の設定では1byte
    (2) iodefine.hが2重持ちになる&内容が違う:PDG2ではiodefine_RPDL.h、FITはiodefine.h、内容が違うのは時期のせい?
    (3) レジスタライトプロテクトの解除/再設定のルーチンが重複する&各ルーチンの処理も違う
    (4) 関数や関数形式マクロの名前で同じものがある(同じ名前でも違う内容です)
    (5) リセットベクタ、例外ベクタテーブル、割り込みベクタテーブルが重複する&リセットや例外の処理も違う
    (6) グループ割り込み(RX210には無いです)ルーチンが重複する&各ルーチンの処理も違う
    (7) さらにグループ割り込みでRSPIとSCIの2つのモジュールの処理が同一グループに属している
    (8) PDG2では端子割り込み処理コードが割り込み処理共通ソースに含まれてしまっている
    (9) PDG2のBRK割り込み処理がFITのそれと異なる何か独特なものになっている(割り込み禁止で実行する共通ルーチン的な?)

    [追記]

    まだ他にもありました。

    (10) double型のサイズ設定が違う:PDG2は8バイト長が必要、FIT(というかCC-RX)のデフォルトは4バイト長
    (11) PDG2に含まれるライブラリソースでヘッダファイル名に間違いがあってコンパイル出来ないものがある

Children
  • khiraoka5です
    NoMaYさんありがとうございます。
    かなりめんどくさそうですね。
    やはり、PDG、FIT混在は労多く、益少ない、ようですね
    今回は、I2Cだけの問題(今のところ)なので、自作のI2Cで行こうと思います。