【发布时间】:2012-12-01 14:49:00
【问题描述】:
ARM 微控制器的“正常”ARM 交叉编译通常包括三个或四个步骤:
- 使用汇编器将启动代码(如果是汇编)汇编到目标文件中
- 使用编译器将任何源代码编译成目标文件
- 使用链接器将目标文件链接到 .elf 文件中
- 使用 objcopy 将 .elf 文件转换为 .hex 文件
- 刷入 .hex 文件
这是我不确定的第 4 步。在 OpenOCD 的 flash write_image 命令的文档中,它指出:
文件 [type] 可以明确指定为 bin(二进制)、ihex(Intel hex)、elf(ELF 文件)、s19(摩托罗拉 s19)。内存或构建器。
很明显OpenOCD支持elf文件,但我不知道这究竟意味着什么。这仅在某些目标上支持吗? JTAG/SWD 适配器是否必须提供某种类似 objcopy 的功能才能正常工作?这仅仅是 OpenOCD 还不支持 elf 文件的时代的遗留物吗?
【问题讨论】: