(ソース・ファイル "iodefine.h" を開くことができません)エラーの原因が分かりません

いつも大変お世話になっております。

RL78/G1N(R5F11Y68ASM)8Kを使用したく、アプリケーションノートのRL78/G10のコード生成ツールを使用したソフトウエアー開発を見ながら

ポートの設定を行っていますが (ソース・ファイル "iodefine.h" を開くことができません。)とエラーが出てビルドできません

使用したいのはとりあえずポート機能だけです

流用サンプルコードはサンプルコード(CGC)
・r_cg_cgc.h: サンプルコードのr_cg_cgc.h 
・r_cg_cgc.c: サンプルコードのr_cg_cgc.c 
・r_cg_cgc_user.c: RL78/G10用CG/AP4出力を使用する。必要に応じてユーザコード記述する。

・r_cg_port.h: 関数宣言のみ。変更せずに使用する。
・r_cg_port.c: 必要に応じてポートの入出力設定を変更する。

サンプルコードのr_cg_systeminit.cを利用する。

サンプルコードのr_cg_main.cを利用する。

以上のサンプルコードと生成したコードを使用してオプションバイトの設定後ビルドしました

始めたばかりの初心者です、お手数をおかけしますが御教授お願い致します

  • チョコです。

    どのような環境で、G10のどのアプリケーションノートのプログラムを参考にしているのでしょうか。

    私が日頃使っているCS+CC-RL環境では、RL78/G1Nでプロジェクトを作成したら、以下のように

    iodefine.hは自動的に作成されました。

    以上

  • CHOKOさんのスクリーンショットの開発ツールはCS+ですね。
    RLマイコンではもう一つ、e2studioが使えます。CS+とe2studioは全くの別物です。

    どちらの開発ツールでも新規作成で作ったプロジェクトならiodefine.hが見つからないということにならないです。でも、サンプルコードを利用する場合、どの開発ツールで作られた物か?あなたが使う開発ツールは何か?を確認してください。2つの開発ツールの間でプロジェクトファイルは行き来できません(ソースコードは共有できますが、初心者と自称されている方は手を出さない方がいいです)。サンプルコードのプロジェクトと同じ開発ツールを使いましょう。場合によってはコンパイラや開発ツールのバージョンも合わせる方が面倒が少ない場合があります。

  • チョコです。

    Yamamotoさん、私はちゃんと「CS+CC-RL]と明記しています。

    e2studioはバージョンアップされるとおかしくなったことを経験したので使っていません。

    >2つの開発ツールの間でプロジェクトファイルは行き来できません(ソースコードは共有できますが、初心者と自称されている方は手を出さない方がいいです)

    RL78/G1Nではコード生成が無いようなので、G10のサンプルコードのプロジェクトからソースをもっていこうとされているようなので、ソースを流用しているのではないでしょうか。

    以上

  • 「CS+CC-RL]と明記しています

    そうですね。意味がよくわからない返答だと感じましたが、私は2つのツールが存在するという話とサンプルがどちらの開発ツールのものかを確認した方がいいですよと書いただけです。

    以上

  • https://www.renesas.com/jp/ja/document/apn/rl78g1m-rl78g1n-software-development-using-code-generation-tools-rl78g10-rev200

    これを見ながらやってるのでしょうか?

    いろんなサンプル説明で参照されている「RL78/G10 初期設定」はすこし時期が古くCubeSuite+(CS+以前のもの)のプロジェクトですのでツール説明部分はそのまま参考にはしないほうがいいです。

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

    Yamamotoさん、がリンクして頂いたサンプルプロジェクトを見ながらCS+CC-RL環境でやっていました・・・

    古く参考にならないということですね、分かりました

    それではコード生成機能の無いRL78/G1Nのポートやクロック設定はどのようにおこなうのですか?

    参考になる事が有れば教えてください、お手数をおかけしますがよろしくお願い致します。

  • ツールの説明は完全に同じじゃないという事で注意が必要という事です。レジスタ値はマイコンの仕様で決まるのでそれはそのまま参考にされて大丈夫ですよ。

    気をつけるのはサンプルプロジェクトがCS+じゃない場合があるということだけです。サンプルプロジェクトは内容によってはCS+版ならマイコン型式の変更で動く場合もあるかもしれません(その判断ができれば悩まないんですよね・・・)。

  • チョコです。

    >「RL78/G10 初期設定」はすこし時期が古くCubeSuite+(CS+以前のもの)のプロジェクトですのでツール説明部分はそのまま参考にはしないほうがいいです。

    ファイルフォルダの日付が2022年なので、CS+CC-RLになっているはずです。

    というか、オリジナルはCA78K0Rでのアセンブラ記述のはずです。つまりコード生成は使っていません。

    ここは、(少なくともCS+CC-RL環境なら)新たにRL78/G10でプロジェクトを作成し、コード生成で、クロックとポートを生成し、生成されたファイルをRL78/G1Nのプロジェクトににコピーし、そのファイルをプロジェクトの追加すれば、クロックとポート位の初期設定は持っていけるのではないでしょうか。

    以上

  • ここのサンプルコードをダウンロードしました。

    これはCS+じゃないですよね?

  • チョコです。

    ここの「CubeSuite+」はCS+で開けますよ。ただし、CC-RLではなく、CA-78K0Rですね。これだと、デバイスファイルはCAの中に含まれており、"iodefine.h"はありません。これが原因のような気がします。

    それでも、ビルドすると、問題なくビルドできました。

    しかし、最新の初期化のサンプルコードは「an_r01an2668jj0210_rl78_port」です。これには「CS+]、「e2studio」「IAR]の3つに対応しているようです。

    昨晩は、an_r01an2668jj0210_rl78_port」で検索できたのですが、今日はできませんでした。そこで、「_rl78_port」で検索したところ、1000件以上ヒットして全部確認しようとしたところすぐに見つかりました。

    初期化用のスタートアップルーチン「r_init.asm」の頭では、以下のように対象デバイスを10pin2KBの「R5F10Y16」が指定されていて、この指定に応じてビルドされるようになっていますね。

    これが新しい方では、以下のように変更されていました。

    このスタートアップルーチンでは以下のようにポートの初期化「SINIPORT」とクロックの初期化「SINICLK」が呼び出され、その後mainが呼ばれてます。

    プロジェクトを開いたら、以下のようになりました。「情報(M0291003) : デバイス・ファイルが更新されています。[I/Oヘッダ・ファイル生成]を実行してヘッダ・ファイルを更新してください。
    V1.01 -> V1.03」とでたので、更新することにしました。

    コード生成を確認したら、使われていないようでした。(アセンブラで記述されているからあたりませですね。)

    これなら、使えませんか?

    ちなみにポートは出力にできるのものは全て出力に設定しているようです。でした。クロックは20MHzに設定されていました。P137のスイッチの結果でP00のLED を制御しているようです。

    まあ、初期設定に関しては、Cでもアセンブラでも同じです。

    以上の情報で進められるのではないでしょうか。

    以上