ビルド時にE0562330:Relocation size overflow 発生

はじめまして、YSと申します。初めて投稿させていただきます。

現在、e2studioにてターゲットデバイス:RX651、RTOS:RI600V4使用のプロジェクトを作成、コーディングを行っているのですが、

ビルド時に以下のエラーが発生して、対処方法がわからず苦慮しています。

  E0562330:Relocation size overflow : "dequeue"-"PRI_KERNEL"-"00000005"

プロジェクトフォルダ下に「dequeue」に関連するファイルを探してみましたが発見できておらず、アセンブリリストファイルが何なのかが確認できませんでした。

「PRI_KERNEL」の配置アドレスはmapファイルより

  PRI_KERNEL
              fff00400 fff04bbe 47bf 1

となっており、ソリューション実装ガイドに記載されているセクション配置内であり、配置自体には問題はないと考えています。

解決方法などわかる方がいらっしゃいましたら、ご助言いただけないでしょうか?

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

Parents
  • こんにちは。NoMaYです。

    本件、ちょっと腑に落ちなかったので、ちょっと調べ始めます。どうも合点がいかないことは、以下の点です。(こんなことを気にして調べようとするので、さして私は出世しなかった(業務遂行効率が甚だ悪い為)、のですけれどもね、、、)

    (1) CC-RXの -nostuff オプションの有無と発生していたエラー E0562330:Relocation size overflow の因果関係
    (2) なぜ、resetprg.c のコンパイル時にCC-RXで -nostuff オプションを付けないとRI600が正常動作しないのか

    以下、合点がいかない理由です。

    (1) 詳細はHelpに譲りますが、このオプションは変数を一律4バイトアラインメントのセクションに配置するのですが、その仕様それ自体によって直接的にくだんの Relocation size overflow のリンクエラーを解消させたのだとは、このリンクエラーの仕様上の発生理由から考えると(推測すると)、とてもそうだとは思えない。

    私が思うに、このオプションを指定したことによって、Relocation size overflow を起こしていた変数が、運よくエラーを起こさない範囲内のアドレスに配置し直されたのだろう、ということだと思う(推測する)のです。

    ただ、調べようと思ってもRI600カーネルのバイナリライブラリの中なので、どうやったら良いものかなぁ、、、

    (2) FITのBSPモジュールの resetprg.c のソースは何度も見ているのですけれど、一体全体何がいけないのか、さっぱり理由が思い浮かびません。そもそも、(GNURX使用時にスタックを変数定義してますが)CC-RX使用時には変数なんて何も定義してなかったような、、、

    実は、こちらも、どうやって調べれば良いのかなぁ、という状態ではありますが、、、エヘヘ(てへぺろ)、、、

    [追記]

    しかし、よくよく考えてみると、リンカでの最適化を抑止してもくだんのエラーは解消されなかった、そうですので、何が起きていたのか藪の中ではありますけれども、、、

  • NoMaYさん

    シェルティです、こんにちは。

    すみません本件、NoMaYさんの推測であるところの「このオプションを指定したことによって、Relocation size overflow を起こしていた変数が、運よくエラーを起こさない範囲内のアドレスに配置し直された」が正しいように思います。前のシェルティの書き込みは推敲と検証が足りておらず、反射的に書き込んでしまいました。申し訳ありません。

    以上です

Reply
  • NoMaYさん

    シェルティです、こんにちは。

    すみません本件、NoMaYさんの推測であるところの「このオプションを指定したことによって、Relocation size overflow を起こしていた変数が、運よくエラーを起こさない範囲内のアドレスに配置し直された」が正しいように思います。前のシェルティの書き込みは推敲と検証が足りておらず、反射的に書き込んでしまいました。申し訳ありません。

    以上です

Children
No Data