当前位置:首页|资讯

vitis 2024.1 软核编译生成的bin文件很大

作者:这个凼啊发布时间:2024-10-08

环境:

使用的vitis2024.1版本,软核为microBlaze,使用DDR4内存

现象:

生成elf文件以后,需要用objcopy命令去生成bin文件,而软核的则需要mb-objcopy程序

这个程序一般在vitis安装目录下,需要 Xilinx\Vitis\2024.1\gnu\microblaze\nt\bin\mb-objcopy.exe 这个程序去生成bin文件,

但是使用这个命令以后生成的bin ,非常大,足足有2个多G,这里肯定不对,elf文件才就才几百KB。

原因:

查找问题后,发现有 ld文件的地址分配,有地址0,地址0x20的分配中断分配,这里我使用了DDR4的,而实际运行的地址是0x80000000,从0地址到0x80000000刚好2个G大小,所以使用命令后,由于地址不连续,导致生成bin文件非常大

解决方式:不同地址单独生成bin文件,随后随需要合并,使用copy命令

单独生成这个.xaa段的bin问题,如果有多个,多加几个 -j .xaa的

去除这个.xaa的段后,生成bin文件

这里生成了两个bin,需要合并,合并的命令为,

这个copy命令是windows自带的命令,使用cmd即可使用

合并后的文件,如果使用了DDR,需要在程序里分别加载到指定的位置,中断才能使用



Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1