随笔 - 29  文章 - 0  评论 - 28  阅读 - 86590

【原创】解决on_chip_memory过小的问题,解决Unable to reach errno ...的问题

【原创】解决on_chip_memory过小的问题

1、NIOS II IDE 报错


                 

    有些同学开始学
NIOS II时,使用的是ON_CHIP_MEMORY;在NIOS II IDE编译过程当中遇到以下问题:

Unable to reach errno (at 0x02081024) from the global pointer (at 0x0208aaf0) because the offset (-39628) is out of the allowed range, -32678 to 32767

或者,

Severity and Description Path Resource Location   Creation Time Id

ld: region onchip_mem is full (ep2c_onchip_led_test.elf section .text). Region needs to be 5640 bytes larger.           

ep2c_onchip_led_test     line 0         1250685275234       14679

ld: section .bss [00001aac -> 00001bbf] overlaps section .text [00001020 -> 00003607]                ep2c_onchip_led_test     line 0        

1250685275234       14682

ld: section .rodata [00001020 -> 0000104b] overlaps section .text [00001020 -> 00003607]                 ep2c_onchip_led_test    

line 0         1250685275234       14680

ld: section .rwdata [0000104c -> 00001aab] overlaps section .text [00001020 -> 00003607]                 ep2c_onchip_led_test    

line 0         1250685275234       14681 

又或者:

make -s all includes

Compiling hello_led.c...

Linking ep2c_onchip_led_test.elf...

/cygdrive/c/altera/81/nios2eds/bin/nios2-gnutools/H-i686-pc-cygwin/bin/../lib/gcc/nios2-elf/3.4.6/http://www.cnblogs.com/http://www.cnblogs.com/nios2-elf/bin/ld:

region onchip_mem is full (ep2c_onchip_led_test.elf section .text). Region needs to be 5640 bytes larger.

/cygdrive/c/altera/81/nios2eds/bin/nios2-gnutools/H-i686-pc-cygwin/bin/../lib/gcc/nios2-elf/3.4.6/http://www.cnblogs.com/http://www.cnblogs.com/nios2-elf/bin/ld:

section .rodata [00001020 -> 0000104b] overlaps section .text [00001020 -> 00003607]

/cygdrive/c/altera/81/nios2eds/bin/nios2-gnutools/H-i686-pc-cygwin/bin/../lib/gcc/nios2-elf/3.4.6/http://www.cnblogs.com/http://www.cnblogs.com/nios2-elf/bin/ld:

section .rwdata [0000104c -> 00001aab] overlaps section .text [00001020 -> 00003607]

/cygdrive/c/altera/81/nios2eds/bin/nios2-gnutools/H-i686-pc-cygwin/bin/../lib/gcc/nios2-elf/3.4.6/http://www.cnblogs.com/http://www.cnblogs.com/nios2-elf/bin/ld:

section .bss [00001aac -> 00001bbf] overlaps section .text [00001020 -> 00003607]

collect2: ld returned 1 exit status

make: *** [ep2c_onchip_led_test.elf] Error 1

Build completed in 2.609 seconds

 

2、解决方法如下

第一步:


                  
      第二步:


      第三步:

 

       

            
      重新编译,问题就解决啦。。

 

3、问题分析

程序过大,存储空间过小是导致这种错误的根本原因。按照以上设置,笔者正常编译之后的控制台给出:

 

 

 

      可以发现还有3516 Bytes的空间。

 另,如果使用SDRAM建议不要勾选small C libraryreduced devicedriversNIOS II IDE会根据选择的不同加载不同的驱动版本,从而程序代码也不相同,能实现的功能也不同。例如使用了ucosII操作系统勾选这两项将导致错误。使用altera提供的HAL驱动程序时也不要勾选上。

posted on   OneSeven  阅读(3790)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
< 2009年8月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示