"); //-->
开发Altera Nios II软件可使用Nios II IDE或 Nios II Software Build Tools for Eclipse(即:Nios II SBT for Eclipse),使用“Build All”或“Build Project”编译工程后有时会出现如下错误:
c:/altera/11.0/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/bin/ld.exe: xxx.elf section `.text' will not fit in region `onchip_mem'
c:/altera/11.0/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/bin/ld.exe: region `onchip_mem' overflowed by nnn bytes
collect2: ld returned 1 exit status
make: *** [xxx.elf] Error 1
其中:“xxx”是工程名,“nnn”是十进制数字,“.text”表示代码段,有时也可能是“.bss”(未初始化的变量段)、“.rodata”(只读数据区, 一般存放静态全局变量)、“.rwdata”(可读写变量数据区)等。
上述错误表示程序的代码段太大,FPGA片上内存(Onchip Memory)不够,差“nnn”字节,编译出错。有时即使是一个很简单的“Hello World”程序,如果使用的FPGA片内资源(内存)少,由于编译时要链接系统库(如设备驱动等),也好出现上述错误。
解决办法如下:
1、Nios II IDE
第一步:右击工程,点击“System Library Properties”。
第二步:进入C/C++ Build页面,选择优化及调式级别,Optimization level选“-0s”(按内存大小优化)、Debug level选“g3”,按Apply后OK退出,如下图所示:
或者选择发行版(Release)去掉所有调试代码,按Apply后OK退出,如下图所示:
第三步:进入“System Library”页面,压缩系统代码(驱动等),勾选“Program never exits”等5项,按OK退出,如下图所示:
重新编译,一般问题就解决。
2、Nios II Software Build Tools for Eclipse
第一步:启动BSP编辑器,进入“Main | Setting | Common”页面,勾选“enable_reduced_device_drivers”和“enable_small_c_library”两项,减少系统代码,按Generate后Exit:
第二步:右击工程,启动属性(Properties)编辑器,点击Nios II Application Properties,Debug level选“Level3”,Optimmization level选“Size”,根据内存大小优化代码,按Apply后OK退出:
上述两步也可合成一步:右击xxx_BSP,启动属性(Properties)编辑器,点击Nios II BSP Properties,按下图选择即可:
重新编译,一般问题就解决。
3、上述处理后,重新编译,如果还是不够,就只有启动SOPC Builder修改(增大)onchip_mem了,如下图所示。如果问题还是没有解决,就只有重新设计硬件,扩展外部SRAM或SDRAM了。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。