RL78/G11 簡易IICAについて

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

とし といいます。

 

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

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

使用しています。

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

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

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

ビルドすら通りません。

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

等のエラーが出ます。

 

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

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

 

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

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

 

  • > レジスタ名は修正したのですが「#pragmaの構文が不正、識別子がありません」
    > 等のエラーが出ます。

    このへん見てみて
    https://www.google.com/search?q=%23pragma+CA78K0R+CC-RL

  • チョコです。
    どのファイルを流用したのかが分かりませんが,CA78K0Rで作られたプロジェクトをCC-RLにかけたのではないでしょうか。その場合に,割り込みの定義の構文が異なっているので,エラーが出るはずです。
    どの環境で,どのプログラム(プロジェクト)を流用したかが分かれば,もっとはっきりするのですが。
  • fujita nozomu さん

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

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

    書き換えガイド等は見ないで作業を行っていました。

    さっそくこれらを確認したいと思います。

    以上、ありがとうございました。
  • ちょこさん

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

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

    下記の件ですが

    >どの環境で,どのプログラム(プロジェクト)を流用したか
    環境;CSPlus_CC_Package_V80300
       CC-RL_V10900
    参考プログラム
    G13
    japan.renesasrulz.com/.../292

    G10
    japan.renesasrulz.com/.../277

    G14
    japan.renesasrulz.com/.../252

    これらのなかで主に「G10」をみながら行いました。
    (LED表示機と記入があったので)

    >割り込みの定義の構文が異なっているので,エラーが出るはず

    どのプロジェクトで作られているかなど
    考えてもいませんでした。

    まずはfujita nozomuさんから頂いたアドバイス
    通り置き換え作業を見ていこうと思います。

    また行き詰った際は質問させていただきたいので
    その際はご対応いただければ幸いです。
  • いつもお世話になります。

    とし といいます。

    CPU ;RL78G11 (R5F1058AALA)
    環境;CSPlus_CC_Package_V80300
       CC-RL_V10900
    参考プログラム
    G10
    japan.renesasrulz.com/.../277

    標記の環境でG10の簡易IICAプログラムを
    プロジェクト作成時に「既存のプロジェクトファイルのファイル構成を流用する」と
    「プロジェクト・フォルダ以下の構成ファイルをコピーして流用する」で
    G11用に変換しました。

    この後、レジスタ名を修正したのちビルドを行うと
    「(E) E0562300 E0562300:Duplicate symbol "_シンボル名" in "ファイル名"」の
    エラーが発生します。

    シンボル名が重複してるとのことなので
    重複してると思われる所を修正していくと
    (シンボル名 main ⇒hdwinit⇒exit⇒start の順番で修正しました。)

    今度は「(E) E0562142 E0562142:Interrupt table address "0x0" of ".vect" has multiple definition」
    が出てきました。
    割り込みベクタで「0x0」は使用してないと思うのですが
    この場合は自分の手順が悪いのでしょうか。

    ご存知でしたらアドバイスを頂きたく思います。

    以上、よろしくお願いします。
  • > 割り込みベクタで「0x0」は使用してないと思うのですが

    リセットベクタなので使用しない訳がありません。
  • fujita nozomu さん

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

    リセットベクタについて知識不足でした。
    RL78G11のハードウェアマニュアルを見て
    確認させていただきます。

    アドバイスありがとうございました。
  • チョコです。
    リセットのベクタは,スタートアップ処理(cstart.asm)で設定されているので,これは何も宣言しないでください。
  • とし さん、こんにちは。NoMaYと申します。

    私もチョコさんのI2Cライブラリを使おうと思って調べていたところですので、としさんの件も調べてみました。

    > (E) E0562142 E0562142:Interrupt table address "0x0" of ".vect" has multiple definition

    チョコさんの以下のサンプルプログラムは、作成時期がCC-RLの出始めの頃に作成されたもので、zipファイル内のソースファイルのタイムスタンプからの推測になりますが、コード生成機能がスタートアップルーチン(r_cg_cstart.asm)を生成していたと思われます。それが変化した時期は分かりませんが、今現在はコード生成機能がスタートアップルーチンを生成することはなくて、プロジェクト作成時のスタートアップルーチン(cstart.asm)を使い続けるようになっています。

    その為、としさんの以下のプロジェクト作成手順では、r_cg_cstart.asmとcstart.asmが重複してしまって、このエラーが出たのだろうと思います。ですので、過去の名残りのr_cg_cstart.asmを削除するのが良いと思います。

    RL78G10簡易IICによるLCD表示器の制御
    japan.renesasrulz.com/cafe_rene/m/sample_program/277

    > 標記の環境でG10の簡易IICAプログラムを
    > プロジェクト作成時に「既存のプロジェクトファイルのファイル構成を流用する」と
    > 「プロジェクト・フォルダ以下の構成ファイルをコピーして流用する」で
    > G11用に変換しました。

    あと、私がチョコさんのサンプルプログラムを調べて分かったのは、今のところ、チョコさんのI2Cライブラリの最新版は以下の通りで、RL78 S3コアというCPUコアを搭載しているRL78/G11では、RL78/G10のものよりRL78/G13のものを流用した方が良いのではないかな、と思うのです。

    チョコさんのI2Cライブラリの最新版 (以下はCC-RL版です)(以下の他にG10でソフトのみでI2C通信を行うタイプがあります)

    S2,S3コア(レジスタバンクあり)向け G13,G14,G12,G11等

    ● IICA使用版マスタモード

    IICマスタ(RL78/G13版)改
    japan.renesasrulz.com/cafe_rene/m/sample_program/293
    * Version      : 2.00
    * Device(s)    : R5F100LE
    * Tool-Chain   : CCRL
    * Description  : This file implements device driver for Serial module.
    * Creation Date: 2015/12/26
    * Modified Date: 2016/06/07
    r_iic_lib.c
    r_iic_lib.h

    ● IICA使用版スレーブモード

    IIC通信のスレーブ(RL78/G13)改
    japan.renesasrulz.com/cafe_rene/m/sample_program/296
    * programed by : チョコ
    * Device(s)    : R5F100LG
    * Tool-Chain   : CC-RL
    * Description  : This file implements device driver for IICA0 slave mode.
    * Creation Date: 2015/11/09
    * Modified Date: 2016/06/10
    r_iica0_lib.c
    r_iica0_lib.h

    ● SAU使用版(簡易I2C)マスタモード (簡易I2Cではスレーブモードはありません)

    IIC通信のマスタ側(RL78/G13の簡易IIC版)改 2C
    japan.renesasrulz.com/cafe_rene/m/sample_program/408
    * Version      : 2.00
    * Device(s)    : R5F100LE
    * Tool-Chain   : CCRL
    * Description  : This file implements IIC control functions.
    * Creation Date: 2015/09/28
    * Modified Date: 2015/10/06 unify inteface
    * Modified Date: 2016/01/06 support read mode
    * Modified Date: 2016/06/06 add retry function and porting to CC-RL
    * Modified Date: 2017/12/18 delete unused POM1 handling from IIC_TM03_init
    r_iic_lib.c
    r_iic_lib.h

    S1コア(レジスタバンクなし)向け G10

    ● IICA使用版マスタモード

    シリアルインターフェイスIICAでデータを取得できません
    japan.renesasrulz.com/cafe_rene/f/002-2095199602/4081/iica/21124#21124
    CC-RLの移行支援機能オプションは不要、かつ、S2,S3コア向けの最新版の移植版です。
    *Version      : 2.00
    * Device(s)    : R5F10Y47
    * Tool-Chain   : CCRL
    * Description  : This file implements IIC control functions.
    * Creation Date: 2015/12/26
    * Modified Date: 2016/06/07
    *              : 2017/04/08(port to RL78/G10)
    r_iic_lib.c
    r_iic_lib.h

    ● IICA使用版スレーブモード

     RL78/G10のIICAスレーブプログラム
    japan.renesasrulz.com/cafe_rene/m/sample_program/283
    CC-RLの移行支援機能オプションが必要、かつ、S2,S3コア向けの方が新しいので移植した方が良いかも知れません。
    *Device(s)    : R5F10267 ← これはG12の品名ですので修正漏れだと思います
    * Tool-Chain   : CC-RL
    * Description  : This file implements device driver for IICA0 slave mode.
    * Creation Date: 2015/11/09
    r_iica0_lib.c
    r_iica0_lib.h

    ● SAU使用版(簡易I2C)マスタモード (簡易I2Cではスレーブモードはありません)

    RL78G10簡易IICによるLCD表示器の制御
    japan.renesasrulz.com/cafe_rene/m/sample_program/277
    CC-RLの移行支援機能オプションが必要、かつ、S2,S3コア向けの方が新しいので移植した方が良いかも知れません。
    *Version      : 1.01
    * program      : チョコ
    * Device(s)    : R5F10Y46
    * Tool-Chain   : CCRL
    * Description  : This file implements IIC control functions.
    * Creation Date: 2015/09/14
    * Modified Date: 2015/10/06 unify inteface
    r_IIC_LIB.c
    r_IIC_LIB.h

    [参考]

    サンプルプログラム等投稿リスト(2018/5/24)
    japan.renesasrulz.com/cafe_rene/m/sample_program/416
     

  • チョコです。

    >あと、私がチョコさんのサンプルプログラムを調べて分かったのは、今のところ、チョコさんのI2Cライブラリの最新版は以下の通りで、RL78 S3コアというCPUコアを搭載しているRL78/G11では、RL78/G10のものよりRL78/G13のものを流用した方が良いのではないかな、と思うのです。

    その通りです。RL78/G10はバスが8bitになり,SFRの名前が微妙に変わっていたり(言語処理では引っかからに場合もあります),レジスタバンクもないし,これからRL78/G11に移植するよりはRL78/G13辺りの最新版を流用してください。

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

    以上