ライブラリ関連?

連投失礼します。

公式hpからRL78G1F_MRSSK_SPM_LESS_120_DIP_CSP_CC_V100をダウンロードしてきて内容を見ています。

 

プログラムの中で、R_FIX_div_int16という関数が使われていますが、

どこにも関数の内容が書かれていません。

どこにも書いていないのに、どうしてこの関数が使えているのか分かりません。わかる方、教えて下さい。

 

以下調べた事

・プロジェクト全体を検索しましたが、関数の内容を記述している部分は有りませんでした。

・関数の名前から、掛け算とか割り算とかしているのだと思います。

・ネットでいろいろ調べましたが、fixmath.hというのが関係しているのかと思いましたが、fixmath.hをincludeする記述がありません

・別途ヘッダーを読み込む事が出来るのかと調べましたら、ビルドツールのリンクオプションに「使用するライブラリファイル」という項目がありまして、中身を見ましたが空でした。

 

開発環境:CS+,

対象マイコン:RL78G1F

ダウンロードプログラム : RL78G1F_MRSSK_SPM_LESS_120_DIP_CSP_CC_V100

プログラム内容: スターターキット(24V Motor Control Evaluation System for RX23T)とRL78G1FのCPUカードを使ってセンサレスモーターを動かすというものです。

 

Parents
  • libフォルダの中にあるR_dsp_rl78_CC.libの中に記述されており、ソースコードを見る事は出来ませんが御推察の通り”割り算”をする関数です。このlib内の関数については、下記からDL出来るドキュメントで関数仕様を確認出来ます。

    www.renesas.com/.../D3012695.html
  • 回答いただいてから、

    新しいプロジェクトを作成して試しましてみました。

    ダウンロードしてきたプログラム RL78G1F_MRSSK_SPM_LESS_120_DIP_CSP_CC_V100から、

    R_dsp_rl78_CC.libとr_dsp.hをコピーしてきて、ライブラリ関数を使おうとビルドしたら

    次のエラーが出てきました。

     

    (E) F0563130 F0563130:Range "mirror" in "C:\Users\a5097429\Documents\itominako\99_temp\temp1_1\DefaultBuild\r_fix_div_int16_rl78.obj" conflicts with that in another file v1.mtpj

    ミラー領域がどうとか出てきてエラーになりました。

    調べたのですが、どうしてエラーになるのかがわかりません。

    わかる方、ご教示お願い致します。

     

    環境

    開発環境:CS+,

    対象マイコン:RL78G1F(R5F11BBC)

    ダウンロードプログラム : RL78G1F_MRSSK_SPM_LESS_120_DIP_CSP_CC_V100

  • チョコです。
    オリジナルのMAPファイル(RL78G1F_MRSSK_SPM_LESS_120_DIP_CSP_CC_V100.map)を眺めていたら,.monitor2のアドレスが0000fe00 0000ffffでした。これは,R5F11BBEを対象にしたもので,ミラー領域がF2000H~FE8FFHとしてビルドされたものと思われます。それに対して,moriさんはR5F11BBC(ミラー領域がF2000H~F7FFFH)でそのライブラリを使ったのが原因ではないでしょうか。
  • NoMaYさん,チョコさん返信ありがとうございます。

     

    NoMaYさんの言われたことをためしてみました。

    ・CS+のコンパイルオプションやアセンブルオプションをサンプルプログラムに合わせてみましたが、同じエラーでした。

    ・-mirror_source,-mirror_regionを設定する項目をさがしたのですがありませんでしたので、「その他追加オプション」という項目がありましたので

    そこに書き込んでみたのですが、認識されなオプションですとなって、コンパイルできませんでした。

     

    その後、試した事がありまして、

    新しいプロジェクト,RL78G1F R5F11BBC(ROM32K, 32pin )と RL78G1F R5F11BLE(ROM64K, 64pin )を作成して、

    サンプルプログラムからライブラリをコピーしてきてコンパイルすると、

    サンプルプログラムと同じ種類のマイコン(ROM64K, 64pin)のプロジェクトだとコンパイルが通る事を確認しました。

    コンパイルオプションは特にさわっていないので、もしかしたらライブラリの中に何か設定があるのかな?と思いました。

     

    チョコさんが言われている様にユーザーズマニュアルでミラー領域を確認しましたら確かに違う事を確認しました。

     

    チョコさんが言われている様に、違う種類のマイコンでライブラリを使っています。(質問にしっかり書くべきでした。)

     

    ・ライブラリを初めて使うのですが、ライブラリというものはマイコンの型番に依存するものなのですか?

    ・依存するのであれば、このライブラリを使うのは不可能なのでしょうか?

  • チョコです。
    >ライブラリというものはマイコンの型番に依存するものなのですか?
    CA-78K0Rのころには,ライブラリ作成時に「デバイス依存にするかどうか」の選択があったと思うのですが,CC-RL78ではその設定はなくなった(デバイス依存なし)はずです。
    どちらにしても,ライブラリを作成する時点での設定なので,今更変更はできないはずです。
    (もしかすると,RL78G1FでもROM64Kでないと使えないのでデバイス依存にしたかもしれません。)
Reply
  • チョコです。
    >ライブラリというものはマイコンの型番に依存するものなのですか?
    CA-78K0Rのころには,ライブラリ作成時に「デバイス依存にするかどうか」の選択があったと思うのですが,CC-RL78ではその設定はなくなった(デバイス依存なし)はずです。
    どちらにしても,ライブラリを作成する時点での設定なので,今更変更はできないはずです。
    (もしかすると,RL78G1FでもROM64Kでないと使えないのでデバイス依存にしたかもしれません。)
Children
  • チョコさんありがとうございます。
     
    ライブラリが作られたときにデバイス依存にされた可能性があるんですね。
    どうしようもないので、このライブラリは諦めて別の道を模索しようと思います。
     
    ありがとうございました。