お世話になります。
RXコンパイラcc-rxにおいてプリプロセッサ命令には下記のような物はないと認識したので宜しいですよね?
これらはGCCの場合に有効なプリプロセッサ命令ですよね。
DTERMFCN=1 -DONESTEPFCN=1 -DMAT_FILE=0 -DMULTI_INSTANCE_CODE=0 -DINTEGER_CODE=0 -DMT=0 -DCLASSIC_INTERFACE=0 -DALLOCATIONFCN=0 -DTID01EQ=0 -DMODEL=NassFCM -DNUMST=1 -DNCSTATES=0 -DHAVESTDIO
マイコンの変更に伴うコード移植をしております。前マイコンはTIのRM46 ARM系出会ったため、GCCでした。
どうぞ宜しくお願いします。
NoMaYさん、ほやさん
コメント有難うございます。ご推察の通りMathworks社のSimulink,Matlab,EmbddedCorderを利用して、ブロックからC原語を出力し、Makeファイルを作製して実行ファイルを作成しようとしている段階です。これまでTIマイコンでしたが、ルネサス製マイコンへのリプレースを試みています。
この過程においてmakeファイルを作成するのですが、EmbeddedCorderがーDではじまるオプションを呼び出すため、CC-RXがーDを認識できず、今回の質問?となりました。
ただ、TIマイコンでのコンパイラは-Dオプションを認識していたのでした。
どなたかMathworks社のEmbeddedCoderを利用してRXマイコンの実行ファイルを作製している方をご存知ないでしょうか。
経験をお借りしたく。。。。
とっさん さん、こんにちは。NoMaYです。> EmbeddedCorderがーDではじまるオプションを呼び出すこの部分の意味が分からないです。というか、コンパイラが異なればオプションの指定方法が異なるのは普通の事態ですので、どういう経緯で-Dオプション(GNUARM)とほやさん指摘の-defineオプション(CC-RX)の違いの件がクローズアップされているのか分からないのです。自分が想像出来るのは、MATLABでソースコードと一緒にmakefileも生成されるけれども、そのmakefileがGNUARM用になっているのをCC-RX用に書き換えようとしている、ところまでしか想像出来ないのです。すみません。それでも、一般的にはそのような場合は以下の何れかの対処をするものだと思うのです、、、(1) makefileを手作業で書き換える。もし、生成される度に差異が生じるのであれば、毎回書き換える(2) 毎回書き換えるのが煩雑で、且つ、スキルがあれば、何らかのスクリプト言語で書き換えを自動化するスクリプト言語としては、Linuxであれば古典的にはsed,awk,perlなどがあり現代的にはruby,pythonなどかと思いますし、WindowsであればVBSscript,JScript,PowerShellとかだと思うのです。[追記]Embedded Coder組込みシステム用に最適化された C コードと C++ コードの生成jp.mathworks.com/products/embedded-coder.htmlGoogle検索: Embedded Coderwww.google.com/search?q=Embedded+Coder[追記2]こういうやり方をする人はあまりいないと思いますが、私は過去に以下のような芸当をしたこともありました。(A) Windows(あるいはDOS時代だったかも)のコンソールアプリケーションとして、渡された引数を、あるコンパイラのものから別のコンパイラのものへ変換して、変換後のオプションで最終的にコンパイラを起動するラッパーアプリケーションを自分で書く[追記3]そういえば、昔、HEW+KPIT GCC環境で、HEWが渡して来たコマンドオプションファイルを引数にベタに展開してコンパイラを起動するwrapperコマンドが使われていた、という記憶が蘇って来ました。それだったかも、、、
とっさん さん、こんにちは。NoMaYです。> ゴールにたどり着けるものなのでしょうか???GNUARMでビルド出来ていたのですから、正しい対処をしていけば、ビルド出来るようになりますよ。ただし、間違った対処をしたら、遠回りすることになることもあるでしょうけれど、、、今回の_Boolは-c99を付けることが正しい対処だろうと、私は思います。それを、macrx.exeのエラーが出なくなったからといって、-c99を付けないで何かやろうとしたら、それは間違った対処だろうと思うのです、、、> macrxの最初の3語のことですか?そうです。
NoMaYさん
有難うございます。
勇気が出ました!
> それを、macrx.exeのエラーが出なくなったからといって、-c99を付けないで何かやろうとしたら、それは間違った対処だろうと思うのです、、、同じくそう思います。正常にコンパイルできたから、その先に進んでmacrx.exeが呼ばれるようになったと考えます。ちなみにmacrx.exeもccrx.exeみたいに-v (version) オプションがあるのかなーと思って試してみたら、Macro Processorと表示されました。やっぱり主要な原因は環境変数が足りていないことではないかと考えます。CS+(e² studioでもいいんですが)で、ビルド時に使われている環境変数の指定を極力真似してみるのが近道じゃないかと思います。
ほやさん
ありがとうございます。もしCS+にて特に環境変数を設定しない場合はデフォルトではどのような設定となるのでしょうか。これを確認できる術はないでしょうか?
CS+で「ビルドの前(後)に実行するコマンド」(共通オプションタブの下の方の「その他」の中にあります)に set コマンドを書いてビルドしてみると、コンソールに環境変数がズラズラ表示されます。
みえました。ありがとうございます。
とっさん さん、こんにちは。NoMaYです。別スレッドに質問を投げられていたことから気になったのですけれど、ひょっとして、先へ進めていないのでしょうか?気になった別スレッドへの質問コマンドラインからccrxコンパイラを実行すると、「F0553200:Error occurred in executing 'macrx.exe' 」が出るjapan.renesasrulz.com/cafe_rene/f/forum21/5213/ccrx-f0553200-error-occurred-in-executing-macrx-exe/37689#37689
こんにちは。
実はまだうまくいっていません。macrx.exeへのpathも正しく切れたと認識しています。
Pathの文字数限界があることをルネサスさんから伺いました。これは問題ないようです。
macrx.exeがうまく実行できない理由を探している状態です。
CS+に生成された.c,.hファイルをインクルードしてビルドすると.hフィアルが参照できないとのエラーがたすうでるため、
ヘッダファイルがうまく認識できていない場合には「F0553200:Error occurred in executing 'macrx.exe' 」が出ることがあるのか気にしている状態です。
「F0553200:Error occurred in executing 'macrx.exe' 」エラーの原因の詳細が分かればよいのですが。。。
とっさん さん、こんにちは。NoMaYです。敢えてくだけた言い回しをさせて貰えば、「最初に変なエラーに遭遇してしまったせいで、作業が迷走しているんじゃないかなぁ~?」という気がするのです。一般論的には、以下のようなコンパイラが内部で起動しているコマンドが起動出来ないなんてエラーはPath設定が足りない程度では出るものではなく、ヘッダが足りないとか、宣言がエラーになるとか、そういったエラーがごく普通に膨大に出たりして、それをひとつひとつ解決していくのが移植という作業なのです、、、そういった作業の一例として、かふぇルネでも気の遠くなるような以下のスレッドがあります、、、今どきPath設定が足りない程度で出るとは思わなかったエラー:F0553200:Error occurred in executing 'macrx.exe'かふぇルネでの気の遠くなるような移植にまつわるスレッド:Amazon FreeRTOSだそうです。ルネサスさんのRXは参加しないのかな?japan.renesasrulz.com/cafe_rene/f/forum21/4772/amazon-freertos-rx思ったのですが、移植に関する経験値が足らずに、ヘッダが足りないとか、宣言がエラーになるとか、そういったエラーがごく普通に膨大に出たりする、ということを受け入れることが出来ない状態なのかなぁ、という気がしました、、、だから、F0553200エラーが出ない代わりに、ヘッダが足りないとか、宣言がエラーになるとか、そういったエラーが出るのであれば、もしかすると膨大なエラーの量になるかも知れませんけど、地道に解決していくしかないよなぁ、と思うのです。(もちろん、経験値がアップすれば、いろんなテクニックが身に付けているんですけれどね、、、)ちなみに、確認ですけれど「(A)の状況では(B)は出ない」ですよね???出るとしたら私の認識が間違っていますね、、、(A) CS+に生成された.c,.hファイルをインクルードしてビルドすると.hフィアルが参照できないとのエラーが多数出る(B) 「F0553200:Error occurred in executing 'macrx.exe' 」が出る
とっさん さん、こんにちは。NoMaYです。そういえば、以前、移植(移行)は初めて、という人の投稿がありましたが、参考までにURLを書いておきます。H8/3694からRX130への移行japan.renesasrulz.com/cafe_rene/f/002-2095199602/6376/h8-3694-rx130