スマートコンフィグレータでi2c通信を行おうと思っているのですがコード生成してもcs+のほうで表示されません。
ネットで調べると図のようにスマートコンフィグレータの下に表示されています。
初歩的なことで申し訳ないのですがどなたか原因を教えてもらえないでしょうか?
たむら さん、こんにちは。NoMaYです。>> (3) ただ、この時点(或いは少し後?)のCS+のプロジェクトtestd.mtpjですが、testd.mtpj内にscfgファイルに関する情報が欠落してしまっています。(★第一の謎)> (3)はプロジェクトの変換を他の方にやってもらったので原因がわかりません...そうであれば、プロジェクトの変換をやって頂いた人のCS+にRXスマートコンフィグレータプラグインがインスト-ルされていないとか(もしくはまだ有効にしていないとか)そういったことも考えられますね。
NoMaYさん、回答ありがとうございます。
また、新たな問題が発生しましたので質問してよろしいでしょうか?
コード生成したら元々ファイルが消えており、ほかの方も同じような質問をしていて拝見させてもらったのですがいまいち解決方法がわからないため原因を解明してもらえないでしょうか?
またコード生成するときにセクション設定というのがでてきたので添付しておきます。
よろしくお願いします。
たむら さん、こんにちは。NoMaYです。> コード生成したら元々ファイルが消えており、これは、元々のプロジェクトで使用されていたRXスマートコンフィグレータ(というかFITのRX Driver PackageのBSPモジュール)のバージョンと現在のRXスマートコンフィグレータ(というか同様にFITのRX Driver PackageのBSPモジュール)のバージョンが違っていて、且つ、ファイル構成が若干変わっているからだと思います。ですので、この状態になった時の対処方法は、CS+のプロジェクトツリーのSmart Cofiguratorカテゴリの下のr_bspカテゴリを一旦ざっくり [プロジェクトから外す] ことをしてから、再度コード生成させれば良いと思います。(たぶん自分はもう無意識にやっちゃっているのだと思う。)> コード生成するときにセクション設定というのがでてきた本来、コンポーネントの追加/削除に伴ってセクションの追加/削除が必要になった時に表示される筈のものである筈ですが、現状、アドレス表記の微妙な違いでも表示されてしまうダイアログです。本来はアドレス表記などは内部にて一意になるような文字列表現に置き換えて比較すれば良いと思うのですが、そういうことをしてはいないようで実質的には同義のセクション設定でもポロっと表示されています。自分はいつも [はい] を選択していたと思います。(そうするとプロジェクトフォルダの下の.settingsフォルダにsection_bkup.txtというファイルが作られて、それが一旦作られるとダイアログは表示されなくなる、という仕組みが入っているようです。)今回ダイアログが表示された原因の文字列差分(以下のような実質的には同義なものでも表示されます)現在:4とか、FFE00000とか。変更後:0x00000004とか、0xFFE00000とか。[関連リンク]ファイルが消えることに関しては、少し前のことですが、以下のスレッドでも話題になっていました。(今回とは少し違う案件ですけれども、、、) [追記] あっ、他の方というのは、これだったのかな、、、スマート・コンフィグレータ(CS+)でコード自動生成すると、r_bsp内のファイルが消えるjapan.renesasrulz.com/cafe_rene/f/forum21/6065/cs-r_bsp[追記]コード生成したら元々のファイルが一部消えるのはバージョン違いによるものだろうと思うのですが、CS+のプロジェクトツリーから削除されないのは、もしかしたら、e2 studioが生成したrcpcファイルをCS+で読み込んだこと(変換したこと)が関係しているのかも知れません。今回の件で気付いたのですが、rcpcファイルにはscfgファイルの情報がそもそも出力されておらず、それをCS+が読み込み時(変換時)に無理矢理にscfgファイルの情報を補っているようで、そういうところからCS+のプロジェクトツリーから削除されない現象が出ているかも知れないです。
たむら さん、こんにちは。NoMaYです。状況把握の為に、すみませんが、画面コピーを見せて頂けませんか?
ちなみにsmart configuratorの中のファイルは消えてないです。
たむら さん、こんにちは。NoMaYです。ああっ、状況が分かりました。そもそもsrcカテゴリの下のsmc_genカテゴリはCS+では不要なものです。(CS+の本来のプロジェクトではsmc_genカテゴリの下の内容はSmart Configuratorカテゴリの下に登録されるようになっていて、そもそもsrcカテゴリの下のsmc_genカテゴリは存在しないのです。) なので、srcカテゴリの下のsmc_genカテゴリは、ざっくり [プロジェクトから外す] ようにして下さい。ちなみに、改めてe2 studioがCS+向けに生成したrcpcファイル(とCS+がe2 studio向けに生成したrcpeファイル)を見てみると、(どちらにも、)このフォルダがRXスマートコンフィグレータがコード生成するフォルダですよ、という情報は出力されておらず、その辺りがスムーズに行かない原因かも知れません。(もっとも、e2 studioがCS+向けに生成したrcpcファイルには、RXスマートコンフィグレータが使用されていますよ、という情報すら出力されていませんけれども。)こうしてみると、RXスマートコンフィグレータを使用したe2 studioプロジェクトをCS+プロジェクトに変換することには、幾つかのトラップがあったのですね、、、
main関数の中にヘッダーファイルがあってそのファイルがsmc_genカテゴリにあるのですがそのファイルはSmart Configuratorカテゴリの下に登録するのでしょうか?
たむら さん、こんにちは。NoMaYです。以下はRXスマートコンフィグレータが生成したヘッダファイルで、Smart Configuratorカテゴリの下に自動的に登録されますので、手作業で何かする必要は無いです。r_smc_entry.hConfig_ICU.hConfig_CMT0.hConfig_PORT.h以下はTB-RX65向けに人手で作成されたヘッダファイルで、リアルのWindowsファイルシステム上においてsrcフォルダ直下にあり、CS+のプロジェクトエクスプローラ上でもsrcカテゴリ直下にあり、手作業で何かする必要は無いです。tbrx65ndef.hと、ここまで書いて思ったのですが、そうでは無く、たむらさんのプロジェクトで使っていない/コード生成していないコンポーネント(ICU/CMT0/PORT)の話なのでは?という気がしてきました。そういうことであれば、コード生成していないコンポーネントのヘッダファイルのインクルード文は、そもそもヘッダファイルを生成させていないのだから、ソースの方を修正してインクルード文を削除すれば良いですよ。
返信が遅くなり申し訳ございません。
main関数というのはledを光らせるプログラムのことで
Config_ICU.h
Config_CMT0.h
Config_PORT.h
は元々あったソースファイルでSmart Configuratorカテゴリの下に登録されていませんでした。
上のヘッダーファイルが登録されていないのでsmc_genカテゴリをプロジェクトから外すとプログラムが動かなくなるのでは?と思い質問させていただきました。
main関数の画像を添付しておきます。
何度もすみませんがよろしくお願いします。
たむら さん、こんにちは。NoMaYです。> 上のヘッダーファイルが登録されていないのでsmc_genカテゴリをプロジェクトから外すとプログラムが動かなくなるのでは?と思い質問させていただきました。このmain()は、たむらさんのプロジェクトでコード生成していないICU/CMT0/PORTのコンポーネントを使っているのだから(そもそも元々のTB-RX65Nのサンプルプログラムのmain()ですので)、もちろん、コンパイルもリンクも出来なくなりますよ。先日のscfgファイルによると、たむらさんのプロジェクトでコード生成していたのはr_bsp/Config_RIIC/Config_SCI0でしたから、このmain()の中身は、たむらさんのプロジェクトではもう使えないというか、そもそも不要というか、このmain()は、たむらさんのプロジェクト向けに書き換えないといけないものですよ。
たむら さん、こんにちは。NoMaYです。質問の返事としては、そうです、なのですけれど、ちょっと面食らったのは、main()にプログラムを書いていくことは、Cプログラムの普通の書き方なのですけれど、そこを聞かれたことに正直なところ私は困惑しているところです。ひょっとして、たむらさんが思っていたRXスマートコンフィグレータを使ったプログラム開発のイメージと大きく違っていましたか?