RL78/G11 簡易IICAについて

いつもお世話になります。

とし といいます。

 

現在、秋月電子で購入した評価ボード

「RL78/G11スティック型評価ボード(R5F1058AALA)」を

使用しています。

アバウトな質問で申し訳ないのですが

簡易IICAを使いたいとチョコさんのRL78/G10,G13

簡易IICAサンプル等を参照させてもらいましたが

ビルドすら通りません。

レジスタ名は修正したのですが「#pragmaの構文が不正、識別子がありません」 

等のエラーが出ます。

 

実際、G11のサンプルとしてどのシリーズ(G10,G13等)を

参照すればよいのでしょうか。

 

以上、アバウトで申し訳ありませんが

どなたかわかる方、アドバイスを頂きたく思います。

 

  • NoMaYさん

    いつもお世話になります。
    としです。

    IICAのアドバイスありがとうございます。
    お礼が遅れて申し訳ありませんでした。

    RL78G11とG10のハードウエアマニュアルを比べながら読んでました。

    NoMaYさんのアドバイスの中で
    >RL78 S3コアというCPUコアを搭載しているRL78/G11では、
      RL78/G10のものよりRL78/G13のものを流用した方が良い

    同じRL78Gシリーズなので使用できると安易に考えていました。
    CPUに注意するということで今後はサンプルを参考にする場合は
    CPUにも気を付けたいと思います。

    また、IICAの参考URLについても洗出しありがとうございます。
    さっそくこちらを見て確認していこうかと思います。

    以上、貴重なお時間でのご教示ありがとうございました。
  • チョコさん

    いつもお世話になります。
    としです。

    昨日と本日のお礼が遅くなり申し訳ありませんでした。

    NoMaYさんからのアドバイスでもありましたが
    参考としてRL78/G13を見たいと思います。

    また、
    >デバイスによって,兼用機能としてA/D入力がある場合とない場合があり,
      設定するレジスタが異なる場合があることに注意すれば,ほとんど修正はいらないはずです。

    こちらの情報はサンプルを見ないとプログラムが書けない自分にとても大きな情報になりました。

    さっそく作業に取り掛かろうと思います。

    以上、度々のご教示ありがとうございます。
  • いつもお世話になります。
    としです。

    IICAとは直接的は関係ないのですが
    別件で質問させていただいてもよろしいでしょうか。

    RL78のハードウェアマニュアルと実際のプログラムを確認しているのですが
    その際にレジスタの宣言方法?についての説明を見つけることができませんでした。


    RL78G11ハードウェアマニュアル 13.3.4
    SMRmnのCKSを触りたい場合、「 _0000_SAU_CLOCK_MODE_CKS」とあります。

    しかしマニュアル内には「 _0000_SAU_CLOCK_MODE_CKS」の記載がありません。
    勝手にSMRmn.CKS.bit = 1 みたいな記入方法だと思ってました。

    以前使用したSHシリーズではこのあたりの記述は「iodefine」に書き方があったのですが
    RL78にはそのようなものもありません。(iodefineと対応ヘッダ内は見ました。)

    自分が見つけられてないだけなのですが、
    このあたりの記入方法がどこにあるのかご教示いただいてもよろしいでしょうか。

    質問ばかりで申し訳ありませんが
    アドバイス頂きたく思います。

    以上、よろしくお願いします。
  • チョコです。

    >しかしマニュアル内には「 _0000_SAU_CLOCK_MODE_CKS」の記載がありません。

    これは,コード生成がレジスタ(SFR)に設定する値を定義しているための表記です。

    具体的な定義は,r_cg_sau.hというヘッダファイルに記述されています。具体的な定義内容を見なくても,最初の「_0000_」の部分で,設定値は分かります。

    「 _0000_SAU_CLOCK_MODE_CKS」は,SMRレジスタのCKSビットに対する指定部分が0となっているデータです。もし,CKSビットに1をセットする場合には,「_8000_SAU_CLOCK_MODE_CKS」となるはずです。このように,いろんなビットに対する定義があり,それらの論理和をとってSMRレジスタの設定値になります。

     

    以上

  • チョコです。
    もう一つ気になる部分があったので,コメントしておきます。
    >勝手にSMRmn.CKS.bit = 1 みたいな記入方法だと思ってました。
    RL78では16bitのレジスタに対するビット操作はできません。SMRは16bitのSFRなので,「SMRmn = xxxx」のように設定は16bit分を一度に設定します。
    その為に前回のコメントで書いたように,コード生成では,各ビットの設定値の論理和をとったデータを代入するようにしています。
  • チョコさん

    いつもお世話になります。
    としです。

    レジスタについてご教示ありがとうございます。
    >いろんなビットに対する定義があり,それらの論理和をとってSMRレジスタの設定値になります。

    SFRについても過去の「かふぇルネ」内に記述があるのを確認しました。

    IICAのコードをRL78G11用に変換するためにも
    各レジスタの宣言方法を確認していきたいと思います。

    以上、ご教示ありがとうございます。
  • チョコさん

    お世話になります。
    としです。

    お礼が遅くなり申し訳ありませんでした。
    思い込みはダメですね。
    前回(SH)と同じだと思っていたので余計にわかりにくくなっていたともいます。

    SFRで検索すると過去のかふぇルネ質問事項も発見できましたので
    これらを読んでSFRについて勉強しようと思います。

    >このように,いろんなビットに対する定義があり,
    それらの論理和をとってSMRレジスタの設定値になります。
    コード置き換えで必要になるはずなので上記の内容についても調べたいと思います。

    以上、アドバイスとご教示ありがとうございます。
  • いつもお世話になります。
    としです。

    NoMaYさんとチョコさんのアドバイス内にあった
    CPUコアの違いを見つけました。

    ・RL78-S1コア:RL78/G10
    ・RL78-S2コア:RL78/G12,RL78/G13,RL78/G1A,RL78/G1E,RL78/G1C,RL78/I1A,RL78/F12,
            RL78/D1A,RL78/L12,RL78/L13
    ・RL78-S3コア:RL78/G14

    RL78-S2コアは種類があり、参考にできそうなものが多そうなので
    うれしいです。

    とりあえずご報告させていただきました。