zoukankan      html  css  js  c++  java
  • 【原创】解决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驱动程序时也不要勾选上。

  • 相关阅读:
    leetcode Super Ugly Number
    leetcode Find Median from Data Stream
    leetcode Remove Invalid Parentheses
    leetcode Range Sum Query
    leetcode Range Sum Query
    leetcode Minimum Height Trees
    hdu 3836 Equivalent Sets
    hdu 1269 迷宫城堡
    hud 2586 How far away ?
    poj 1330 Nearest Common Ancestors
  • 原文地址:https://www.cnblogs.com/oneseven/p/1550190.html
Copyright © 2011-2022 走看看