スマートコンフィグレータでのコード生成について

スマートコンフィグレータでi2c通信を行おうと思っているのですがコード生成してもcs+のほうで表示されません。

ネットで調べると図のようにスマートコンフィグレータの下に表示されています。

初歩的なことで申し訳ないのですがどなたか原因を教えてもらえないでしょうか?

Parents
  • たむら さん、こんにちは。NoMaYです。

    >> (3) ただ、この時点(或いは少し後?)のCS+のプロジェクトtestd.mtpjですが、testd.mtpj内にscfgファイルに関する情報が欠落してしまっています。(★第一の謎)

    > (3)はプロジェクトの変換を他の方にやってもらったので原因がわかりません...

    そうであれば、プロジェクトの変換をやって頂いた人のCS+にRXスマートコンフィグレータプラグインがインスト-ルされていないとか(もしくはまだ有効にしていないとか)そういったことも考えられますね。

  • NoMaYさん、回答ありがとうございます。

    また、新たな問題が発生しましたので質問してよろしいでしょうか?

    コード生成したら元々ファイルが消えており、ほかの方も同じような質問をしていて拝見させてもらったのですがいまいち解決方法がわからないため原因を解明してもらえないでしょうか?

    またコード生成するときにセクション設定というのがでてきたので添付しておきます。

    よろしくお願いします。

  • NoMaYさん、回答ありがとうございます。

    r_bspカテゴリをプロジェクトから外し再度コード生成を行いましたがうまくいきませんでした...
    また、上記の画像に載せているファイルだけでなく他のカテゴリのファイルも消えています。

    何度もすみません。よろしくお願いします。
  • たむら さん、こんにちは。NoMaYです。

    状況把握の為に、すみませんが、画面コピーを見せて頂けませんか?

  • 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+プロジェクトに変換することには、幾つかのトラップがあったのですね、、、

  • NoMaYさん、回答ありがとうございます。

    main関数の中にヘッダーファイルがあってそのファイルがsmc_genカテゴリにあるのですがそのファイルはSmart Configuratorカテゴリの下に登録するのでしょうか?

    よろしくお願いします。

  • たむら さん、こんにちは。NoMaYです。

    以下はRXスマートコンフィグレータが生成したヘッダファイルで、Smart Configuratorカテゴリの下に自動的に登録されますので、手作業で何かする必要は無いです。

    r_smc_entry.h
    Config_ICU.h
    Config_CMT0.h
    Config_PORT.h

    以下はTB-RX65向けに人手で作成されたヘッダファイルで、リアルのWindowsファイルシステム上においてsrcフォルダ直下にあり、CS+のプロジェクトエクスプローラ上でもsrcカテゴリ直下にあり、手作業で何かする必要は無いです。

    tbrx65ndef.h

    と、ここまで書いて思ったのですが、そうでは無く、たむらさんのプロジェクトで使っていない/コード生成していないコンポーネント(ICU/CMT0/PORT)の話なのでは?という気がしてきました。そういうことであれば、コード生成していないコンポーネントのヘッダファイルのインクルード文は、そもそもヘッダファイルを生成させていないのだから、ソースの方を修正してインクルード文を削除すれば良いですよ。

  • NoMaYさん、回答ありがとうございます。

    返信が遅くなり申し訳ございません。

    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()に今回の目的であるi2c通信をつかったプログラムを新たに書き換えれば動くということでしょうか?
  • たむら さん、こんにちは。NoMaYです。

    質問の返事としては、そうです、なのですけれど、ちょっと面食らったのは、main()にプログラムを書いていくことは、Cプログラムの普通の書き方なのですけれど、そこを聞かれたことに正直なところ私は困惑しているところです。ひょっとして、たむらさんが思っていたRXスマートコンフィグレータを使ったプログラム開発のイメージと大きく違っていましたか?

Reply
  • たむら さん、こんにちは。NoMaYです。

    質問の返事としては、そうです、なのですけれど、ちょっと面食らったのは、main()にプログラムを書いていくことは、Cプログラムの普通の書き方なのですけれど、そこを聞かれたことに正直なところ私は困惑しているところです。ひょっとして、たむらさんが思っていたRXスマートコンフィグレータを使ったプログラム開発のイメージと大きく違っていましたか?

Children
  • NoMaYさん、回答ありがとうございます。

    >ひょっとして、たむらさんが思っていたRXスマートコンフィグレータを使ったプログラム開発のイメージと大きく違っていましたか?

    自分自身まだマイコンやプログラム開発といったものに慣れていないためこのような初歩的なことを質問させていただきました。ですがやっとNoMaYさんのおかげでスタート地点に立てました。

    また今回のように初歩的なことを質問するかもしれないのでその際はよろしくお願いします。