11. 编译工具ELF转换工具
kf32objcopy 支持将链接生成的 ELF 格式目标文件转换为多种可直接下载到芯片存储器的标准格式文件。链接器在生成最终映像文件时,可通过参数自动调用此工具。
11.1 命令行语法
其命令行语法为:
kf32objcopy [options] input-file [output-file]
其中:
[options]
操作与修饰符,指定执行的文件格式转换操作及其他处理选项。多个选项可以组合使用。
input-file
指定输入的 ELF 格式目标文件名。
[output-file]
指定输出的目标格式文件名。如果未指定,或使用 >重定向符,则输出到指定文件,而非控制台。
11.2 常用选项示例与说明
11.2.1 选项说明
-
-O <format>指定输出文件的格式。这是最核心的转换选项。支持的
<format>包括:- ihex:Intel HEX 格式,文件扩展名常为 .hex。
- srec:Motorola S-record 格式(S19),文件扩展名常为 .s19或 .srec。
- binary:纯二进制(裸)格式,文件扩展名常为 .bin。
-
-j <section>/--only-section=<section>仅从输入文件中复制指定的节区(section)到输出文件。可多次使用以指定多个节区。 -
--srec-len <value>生成 srec 格式时,指定每条记录承载的数据字节数,默认为 16。 -
--srec-forceS3生成 srec 格式时,只使用 S3 记录(带 32 位地址的数据记录)。
11.2.2 转换示例
将 ELF 文件转换为 Intel HEX 格式:
kf32objcopy -O ihex project.elf project.hex
将 ELF 文件转换为 S-record 格式:
kf32objcopy -O srec --srec-len 16 --srec-forceS3 application.elf application.s19