ZynqMP Vitis2021.1 生成hex或者bin文件

比如Cortex™-R5 处理器的Vitis工程生成hex和bin文件。

如下图片中的Command中输入下面内容:

armr5-none-eabi-objcopy -O binary ${ProjName}.elf ${ProjName}.bin;armr5-none-eabi-objcopy -O ihex ${ProjName}.elf ${ProjName}.hex

但是由于vitis的R5核的链接文件中设置,。vectors段与其他的段不是连续的。

若直接使用上面命令会发生生成的bin文件非常大,原因如下:

此时我们要把这两个段分别编译出两个bin文件。

armr5-none-eabi-objcopy -O binary -j .vectors ${ProjName}.elf ${ProjName}_vectors.bin;armr5-none-eabi-objcopy -O binary -R .vectors ${ProjName}.elf ${ProjName}_application.bin

参数-j:只把.vectors段的代码生成bin文件。

参数-R:把.vectors段的代码删除,其他段生成bin文件。 更多信息请看armr5-none-eabi-objcopy --help

Cortex™-A53 处理器的Vitis工程生成hex和bin文件,则改成下面

aarch64-none-elf-objcopy -O binary ${ProjName}.elf ${ProjName}.bin;aarch64-none-elf-objcopy -O ihex ${ProjName}.elf ${ProjName}.hex

全篇完。

本人是一个嵌入式未入门小白,博客仅仅代表我个人主观见解,记录成长笔记。 若有与 大神大大 见解有歧义,我绝对坚信 大神大大 见解是对的,我的是错的。 感谢~!

经验分享 程序员 微信小程序 职场和发展