Xilinx EDK10.1中region ilmb_cntlr_dlmb_cntlr is full的解决办法

来源:互联网 发布:天机线至尊指标源码 编辑:程序博客网 时间:2024/06/14 06:01

小弟最近在学习EDK使用MicroBlaze,在做test_memory时比较顺利但是在做testAPP_peripheral时出现如下错误:

/cygdrive/e/tools/Xilinx/10.1/EDK/gnu/microblaze/nt/bin/../lib/gcc/microblaze-xilinx-elf/4.1.1/../../../../microblaze-xilinx-elf/bin/ld.real: region ilmb_cntlr_dlmb_cntlr is full (TestApp_Peripheral/executable.elf section .rodata)
/cygdrive/e/tools/Xilinx/10.1/EDK/gnu/microblaze/nt/bin/../lib/gcc/microblaze-xilinx-elf/4.1.1/../../../../microblaze-xilinx-elf/bin/ld.real: section .data [00000050 -> 000001b3] overlaps section .text [00000050 -> 00001c1b]
/cygdrive/e/tools/Xilinx/10.1/EDK/gnu/microblaze/nt/bin/../lib/gcc/microblaze-xilinx-elf/4.1.1/../../../../microblaze-xilinx-elf/bin/ld.real: section .ctors [000001b4 -> 000001bb] overlaps section .text [00000050 -> 00001c1b]
/cygdrive/e/tools/Xilinx/10.1/EDK/gnu/microblaze/nt/bin/../lib/gcc/microblaze-xilinx-elf/4.1.1/../../../../microblaze-xilinx-elf/bin/ld.real: section .dtors [000001bc -> 000001c3] overlaps section .text [00000050 -> 00001c1b]
/cygdrive/e/tools/Xilinx/10.1/EDK/gnu/microblaze/nt/bin/../lib/gcc/microblaze-xilinx-elf/4.1.1/../../../../microblaze-xilinx-elf/bin/ld.real: section .eh_frame [000001c4 -> 000001c7] overlaps section .text [00000050 -> 00001c1b]
/cygdrive/e/tools/Xilinx/10.1/EDK/gnu/microblaze/nt/bin/../lib/gcc/microblaze-xilinx-elf/4.1.1/../../../../microblaze-xilinx-elf/bin/ld.real: section .jcr [000001c8 -> 000001cb] overlaps section .text [00000050 -> 00001c1b]
/cygdrive/e/tools/Xilinx/10.1/EDK/gnu/microblaze/nt/bin/../lib/gcc/microblaze-xilinx-elf/4.1.1/../../../../microblaze-xilinx-elf/bin/ld.real: section .bss [000001d0 -> 0000025f] overlaps section .text [00000050 -> 00001c1b]
/cygdrive/e/tools/Xilinx/10.1/EDK/gnu/microblaze/nt/bin/../lib/gcc/microblaze-xilinx-elf/4.1.1/../../../../microblaze-xilinx-elf/bin/ld.real: section .heap [00000260 -> 0000065f] overlaps section .text [00000050 -> 00001c1b]
/cygdrive/e/tools/Xilinx/10.1/EDK/gnu/microblaze/nt/bin/../lib/gcc/microblaze-xilinx-elf/4.1.1/../../../../microblaze-xilinx-elf/bin/ld.real: section .stack [00000660 -> 00000a5f] overlaps section .text [00000050 -> 00001c1b]
/cygdrive/e/tools/Xilinx/10.1/EDK/gnu/microblaze/nt/bin/../lib/gcc/microblaze-xilinx-elf/4.1.1/../../../../microblaze-xilinx-elf/bin/ld.real: TestApp_Peripheral/executable.elf: section .text lma 0x50 overlaps previous sections
collect2: ld returned 1 exit status
make: *** [TestApp_Peripheral/executable.elf] Error 1

在网上试了一些解决办法,现做一个总结

首先如果是test_memory和testapp_peripheral在一起时要先把test_memory的Mark  to initialize to BRAMs不选择,然后将testapp_peripheral的选上,然后重新update下bitsream看问题是否还在;

要是还在的话那估计就是Program size太大了,bram无法放下了。需要修改下EDK的配置,右击工程名字,选择generate linker项,在弹出来的界面中,选择程序放在什么地方,分散一下放(直接点击OK就好了)。如果这样问题还不能解决那就需要接其他外接存储器了。




最后出现结果


原创粉丝点击