Xilinx Vitis 2020.1修改工程占用的BRAM内存大小的方法

修改了代码后编译工程,有时会因为BRAM空间不足而编译失败,出现下面的错误提示:

Xilinx Vitis 2020.1修改工程占用的BRAM内存大小的方法_第1张图片

'Invoking: MicroBlaze gcc linker'
mb-gcc -Wl,-T -Wl,../src/lscript.ld -LE:/fpga_projects/test4/microblaze_test/export/microblaze_test/sw/microblaze_test/standalone_domain/bsplib/lib -mlittle-endian -mcpu=v11.0 -mxl-soft-mul -Wl,--no-relax -Wl,--gc-sections -o "bootloader.elf"  ./src/bootloader.o ./src/platform.o ./src/srec.o   -Wl,--start-group,-lxil,-lgcc,-lc,--end-group -Wl,--start-group,-lxilisf,-lxil,-lgcc,-lc,--end-group
c:/xilinx/vitis/2020.1/gnu/microblaze/nt/x86_64-oesdk-mingw32/usr/bin/microblaze-xilinx-elf/../../libexec/microblaze-xilinx-elf/gcc/microblaze-xilinx-elf/9.2.0/real-ld.exe: bootloader.elf section `.stack' will not fit in region `microblaze_0_local_memory_ilmb_bram_if_cntlr_Mem_microblaze_0_local_memory_dlmb_bram_if_cntlr_Mem'
c:/xilinx/vitis/2020.1/gnu/microblaze/nt/x86_64-oesdk-mingw32/usr/bin/microblaze-xilinx-elf/../../libexec/microblaze-xilinx-elf/gcc/microblaze-xilinx-elf/9.2.0/real-ld.exe: region `microblaze_0_local_memory_ilmb_bram_if_cntlr_Mem_microblaze_0_local_memory_dlmb_bram_if_cntlr_Mem' overflowed by 744 bytes
collect2.exe: error: ld returned 1 exit status
'Finished building target: bootloader.elf'

Xilinx Vitis 2020.1修改工程占用的BRAM内存大小的方法_第2张图片

Xilinx Vitis 2020.1修改工程占用的BRAM内存大小的方法_第3张图片

这时,需要回到Vivado工程里面,在Block Design中将分配的BRAM空间大小改大。具体方法如下。

进入IP INTEGRATOR的Address Edditor:

Xilinx Vitis 2020.1修改工程占用的BRAM内存大小的方法_第4张图片

修改BRAM空间大小,由16KB改为32KB,保存,然后重新生成bit文件。

Xilinx Vitis 2020.1修改工程占用的BRAM内存大小的方法_第5张图片

生成完bit文件后,重新导出xsa文件:

Xilinx Vitis 2020.1修改工程占用的BRAM内存大小的方法_第6张图片

回到Vitis里面,重新导入xsa文件:

Xilinx Vitis 2020.1修改工程占用的BRAM内存大小的方法_第7张图片

仔细看一下这里的xsa文件的路径对不对。有时候这里的路径是不对的,需要重新选择正确的文件。

Xilinx Vitis 2020.1修改工程占用的BRAM内存大小的方法_第8张图片

点击OK关闭对话框后,打开mmi文件看一下,看修改后的BRAM大小是否真的生效了。如果没有生效,那就是刚才选的xsa文件的路径不对。

Xilinx Vitis 2020.1修改工程占用的BRAM内存大小的方法_第9张图片

确认大小正确后,这个时候必须要build一下platform工程(绿色的那个工程)。

Xilinx Vitis 2020.1修改工程占用的BRAM内存大小的方法_第10张图片

build完之后,去看看application工程里面的BRAM大小是否生效。这里一般要多弹出几次右键菜单,Generate Linker Script菜单项才会出来。

Xilinx Vitis 2020.1修改工程占用的BRAM内存大小的方法_第11张图片

可以看到BRAM的大小已经生效了,变成了32KB。这个时候要点一下Generate按钮,更新lscript.ld文件。

Xilinx Vitis 2020.1修改工程占用的BRAM内存大小的方法_第12张图片

BRAM空间足够了,工程可以编译通过了:

Xilinx Vitis 2020.1修改工程占用的BRAM内存大小的方法_第13张图片

以上是修改工程BRAM大小的完整步骤。以上步骤只要错一步,就会修改不成功。整个过程还是比较复杂的。

你可能感兴趣的:(FPGA,FPGA,Vitis,BRAM,Microblaze,Xilinx)