いつも大変お世話になっております。
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を利用する。
以上のサンプルコードと生成したコードを使用してオプションバイトの設定後ビルドしました
始めたばかりの初心者です、お手数をおかけしますが御教授お願い致します
CHOKOさんのスクリーンショットの開発ツールはCS+ですね。RLマイコンではもう一つ、e2studioが使えます。CS+とe2studioは全くの別物です。どちらの開発ツールでも新規作成で作ったプロジェクトならiodefine.hが見つからないということにならないです。でも、サンプルコードを利用する場合、どの開発ツールで作られた物か?あなたが使う開発ツールは何か?を確認してください。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でもアセンブラでも同じです。
以上の情報で進められるのではないでしょうか。
G10_CG_PORT.zip
CS+CC-RL環境で、コード生成及びC言語化したプロジェクトを作ってみました。
[共通/クロック設定」は以下のように設定しています。
ポート機能はP0を全て出力で1に設定、P137を入力に設定しています。
ウォッチドッグ・タイマの動作設定は「使用しない」に設定します。
セレクタブル・パワーオン・リセット回路は「2.84V]に設定します。
この状態で、「コードを生成する」をクリックしてコード生成を行います。
r_cg_main.cのwhileループには、以下のようなプログラムになります。
ビルドして、シミュレ―タにダウンロードすると、以下のようにシミュレータのGUIが表示されるようにしています。
実行して、SWを1回、クリックするとLEDが点灯し、再度クリックするLEDは消灯します。
お世話になっております。
色々やってみてiodefine.hエラーが無くなりました、サンプルコードも使えました
サンプルコードの・r_cg_port.c:を張り付けるとエラーが出てましたRL78/G10のコードを持つて来てもダメでしたが、iodefine.hを一度、削除して同じ物を張り付けると何故かエラーが消えビルドも正常に出来ました、とりあえずポートの設定はうまく行きましたので他の設定も試してみます
又何かありましたら宜しくお願い致します。
何とかうまくいったようで何よりです。
こちらでも同様のエラーを確認し、原因として「r_cg_macrodriver.h」での#include "iodefine.h"で発生していることを確認しました。「r_cg_macrodriver.h」の場所を色々いじっていたらエラーはなくなりました。
何か問題があったときには問題のファイルを添付していただくと確認が簡単になります。
RL78/G1N(R5F11Y68ASM)の評価環境は持ち合わせていないのと、シミュレータでGUIがサポートされていないので、動作確認はできませんが、RL78/G10 では結構プログラムを作成してきているので、お役に立てるかと思います。
>・r_cg_port.c:を張り付けるとエラーが出てました
この原因はポート構成の違いです。G10(10pin)のP0は以下のようにP01~P04にはアナログ入力が兼用機能になっているので、PMCビットをリセットしています。
ところが、G1Nでは、下に示すようにP0ではP07だけにPMCは存在しています。
この部分を修正すれば、エラーはなくなるはずです。