machine.hについて

初めて質問を投稿させていただきます。至らぬ点はご容赦ください。

現在、CS+で作成したRX62N向けのプロジェクトを、e2studio(GCC)へ移植してします。

色々と試した結果、e2studioで新規に作成したプロジェクトへ、Cのファイルをインポートしたのですが、e2studio(GCC)にはmachine.hが無いということで止まっています。

使用しているのは割り込みの制御に関するclrpsw_i()とsetpsw_i()ぐらいだと思うのですが、何かスマートな解決策をご存知でしたらご教授ねがえないでしょうか。

よろしくお願いいたします。

Parents
  • higeさん、こんにちは。NoMaYです。

    > また素朴な疑問なのですが、初めからe2studio(GCC)を使用しRXを動かしている方は、割込み禁止などをする場合にビルトイン関数を使われるのでしょうか?

    たぶん、2パターンあると思うのです。(そして、RXスマートコンフィグレータが対応している品種では更にもう1パターンあります。)

    ● RXスマートコンフィグレータが対応していない品種

    初学者さん: ビルトイン関数を使っていると思います
    上級者さん: インラインアセンブラ記述している人も少なくないと思います(ビルトイン関数の場合は組み合わせる必要があって面倒なので)

    ● RXスマートコンフィグレータが対応している品種

    上記の2つに加えて、そもそもRXスマートコンフィグレータ(というかFIT)のBSPモジュールでCC-RXとRX向けGCC(とRX向けIARコンパイラ)で共通に使える関数(というか関数形式マクロ)が用意されていますので、それを使う人もいると思います。

    ちなみに、私はというと、BSPモジュールの共通関数形式マクロをRX向けGCCでは更にCC-RXと同じ関数名になるよう再度マクロ定義して使ったりします。(そうすると、CC-RX⇒RX向けGCCの時にソース本体側は変更しなくても済むからです。なお、その上に書いたように共通関数形式マクロをCC-RXで作業を始めた最初から使っているプロジェクトもあります。もっとも、私の場合、とても小さなプロジェクトばかりですけれども。)

Reply
  • higeさん、こんにちは。NoMaYです。

    > また素朴な疑問なのですが、初めからe2studio(GCC)を使用しRXを動かしている方は、割込み禁止などをする場合にビルトイン関数を使われるのでしょうか?

    たぶん、2パターンあると思うのです。(そして、RXスマートコンフィグレータが対応している品種では更にもう1パターンあります。)

    ● RXスマートコンフィグレータが対応していない品種

    初学者さん: ビルトイン関数を使っていると思います
    上級者さん: インラインアセンブラ記述している人も少なくないと思います(ビルトイン関数の場合は組み合わせる必要があって面倒なので)

    ● RXスマートコンフィグレータが対応している品種

    上記の2つに加えて、そもそもRXスマートコンフィグレータ(というかFIT)のBSPモジュールでCC-RXとRX向けGCC(とRX向けIARコンパイラ)で共通に使える関数(というか関数形式マクロ)が用意されていますので、それを使う人もいると思います。

    ちなみに、私はというと、BSPモジュールの共通関数形式マクロをRX向けGCCでは更にCC-RXと同じ関数名になるよう再度マクロ定義して使ったりします。(そうすると、CC-RX⇒RX向けGCCの時にソース本体側は変更しなくても済むからです。なお、その上に書いたように共通関数形式マクロをCC-RXで作業を始めた最初から使っているプロジェクトもあります。もっとも、私の場合、とても小さなプロジェクトばかりですけれども。)

Children
  • NoMaYさん返信ありがとうございます。

    スマートコンフィグレータという方法もあるのですね。

    今回はRX62Nですので使えそうもありませんが、新しい基板を起こすことが出来たら使ってみたいと思います。

    なお私はアセンブラと聞くと思考が停止してしまうダメダメ人間ですので、多分、ビルトイン関数を使うことになりそうです。

    また何かありましたら、こちらに質問させていただくと思いますので、その際はどうぞよろしくお願いいたします。