跳到主要内容

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