このエラーは、Nios II コンパイラーが 256MB の境界に制限がある コール 命令を使用するため、メインメモリーから 256MB 以上離れたメモリー位置に関数がある場合に発生します。
この問題には 2 つの回避策があります。
1) ACDS バージョン 13.1 では、-relax-allオプションが実装され、コール命令ではなくcallr命令が使用されます。Eclipse向けソフトウェア・ビルド・ツール で、アプリケーションまたは BSP プロパティにユーザーフラグとして-ウェープ、-relax-allオプションを追加します。
この回避策は 、callr 命令が コール 命令と比較してアセンブリー命令を多く使用するため、ソフトウェアのパフォーマンスに影響を与える可能性があります。
2) コール 命令はアドレスの MSB 4 ビットを計算しないため、256MB の境界制限があります。メモリーベースアドレスの MSB 4 ビットが同じになるようにメモリーを探し、機能が 256MB の境界内にあることを確認します。
例えば。SDRAM: 0x10000000、オンチップメモリー: 0x12000000
または SDRAM: 0x08000000、オンチップ・メモリー: 0x02000000