热度 34
2014-8-12 07:41
5622 次阅读|
0 个评论
开发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: *** Error 1 其中:“xxx”是工程名,“nnn”是十进制数字,“.text”表示代码段,有时也可能是“.bss”(未初始化的变量段)、“.rodata”(只读数据区, 一般存放静态全局变量)、“.rwdata”(可读写变量数据区)等。 上述错误表示程序的代码段太大,FPG**上内存(Onchip Memory)不够,差“nnn”字节,编译出错。有时即使是一个很简单的“Hello World”程序,如果使用的FPG**内资源(内存)少,由于编译时要链接系统库(如设备驱动等),也好出现上述错误。 解决办法如下: 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了。