比如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
![](https://img-blog.csdnimg.cn/86bcf417f4f44b8386c6e76d8a41d349.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAc3VkYXJvb3Q=,size_20,color_FFFFFF,t_70,g_se,x_16)
但是由于vitis的R5核的链接文件中设置,。vectors段与其他的段不是连续的。
![](https://img-blog.csdnimg.cn/a684fa4d2cec4f49b2576d57dc3beb8c.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAc3VkYXJvb3Q=,size_20,color_FFFFFF,t_70,g_se,x_16)
若直接使用上面命令会发生生成的bin文件非常大,原因如下:
vitis2021.1 armr5-none-eabi-objcopy -O binary elf文件转bin文件变大_sudaroot的博客-CSDN博客
此时我们要把这两个段分别编译出两个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
全篇完。
本人是一个嵌入式未入门小白,博客仅仅代表我个人主观见解,记录成长笔记。
若有与 大神大大 见解有歧义,我绝对坚信 大神大大 见解是对的,我的是错的。
感谢~!