Intel:On-Chip Memory の容量不足に関連した Nios® II SBT for Eclipse のビルドエラーが発生しましたが、FPGA のデザインを変更せずに回避することはできますか?

Nios II

カテゴリ:Nios® II
ツール:Nios® II EDS
デバイス:-

<エラー・メッセージ>
‘onchip_memory’ overflowed

FPGA のデザインを変更せずにソフトウェアの設定だけで回避したい場合、C 言語でだけでコードを記述する(C++ 言語は使用しない)のであれば、enable_c_pluse_pluse のhal.enable_c_pluse_pluse のチェックを OFF にして Generate -> ビルドを実施することで、コードサイズを削減することが可能です。

その他、printf を使用する予定がない場合、プロジェクト・テンプレートで New Projectでhello_world_small を使用すると限定版のライブラリを使用して、コードサイズが小さくなります。
このテンプレートでの BSP のオプション名は enable_small_library です。
printf を使用するなら、RAM が 64K くらい必要です。使用しなければ、32KB 以下で十分動作します。
この設定でも、下記のように単純な文字列出力や 16進表示などができます。BSP/HAL/sys/alt_stdio.h にプロトタイプがあります。

int alt_getchar();
int alt_putchar(int c);
int alt_putstr(const char* str);
void alt_printf(const char *fmt, …); // 16進のみ、10進は不可

printf 系はコードサイズが大きく、特に float を使うとかなり大きくなるため、単純なテストプログラムでは、small_library がお勧めです。

尚、コードサイズを計算する方法は、ビルドした後に、Console画面の最後に下記のようなメッセージが表示されるので、これらを参考にしてください。

<メッセージ例>

Info: (test.elf) 119 KBytes program size (code + initialized data).
Info: 8824 Bytes free for stack + heap.
Info: Creating test.objdump
nios2-elf-objdump --disassemble --syms --all-header --source test.elf >test.objdump
[test build complete]

経験豊富なFAEが
無料でご相談を承ります。

特定製品の仕様からパーツの選定まで、当社のFAEが皆様のテクニカルなお悩みに無料で回答します。ぜひ、お気軽にご相談ください。