我不确定这是第4步。在OpenOCD的flash write_image
命令的文档中,它声明:
文件[type]可以明确指定为bin(二进制),ihex(Intel hex),elf(ELF文件),s19(Motorola s19)。记忆,或建设者。
很明显,OpenOCD支持elf文件,但我不知道这实际意味着什么。这仅在某些目标上得到支持吗? JTAG / SWD适配器必须提供某种类似objcopy的功能吗?从OpenOCD尚未支持elf文件的日子开始,它只是一个延续吗?
答案 0 :(得分:2)
包含地址和数据的文件格式如elf,ihex,srec都很好用,我主要使用elf。 .bin文件没有携带地址所以你1)必须指定起始地址2)objcopy填充定义区域之间的间隙,这可能会产生问题,并且需要更多的加载时间等。
使用.bin会在地址上留下人为错误的空间。不幸的是,我遇到过.elf和openocd的组合将加载错误的地址或至少在加载时打印错误的地址的情况。
尽可能使用.elf文件。 .hex或.srec如果该实用程序不支持elf但支持ihex或srec。例如,当使用x / y / zmodem加载器时.bin。
我认为openocd是分层的,有一个前端可以读取文件,当它到达后端时,jtag或者后端不知道数据源自哪种文件。我不知道一个事实但是假设......