c-CMake命令查询(add_custom_command)



我使用以下命令生成校验和值、.hex和.bin文件。

不幸的是,第一个出现错误。

我在生成校验和时出错。

add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_OBJCOPY} --fill; 0xFF;0x0-0x3CFFD;--checksum=__checksum:2,crc16,0x0;0x0-0x3CFFD

COMMAND ${CMAKE_OBJCOPY} --ihex ${CMAKE_SOURCE_DIR}/Output/exe/${CMAKE_PROJECT_NAME}.elf ${HEX_FILE}

COMMAND ${CMAKE_OBJCOPY} --bin ${CMAKE_SOURCE_DIR}/Output/exe/${CMAKE_PROJECT_NAME}.elf ${BIN_FILE}
WORKING_DIRECTORY  ${CMAKE_SOURCE_DIR}/Output/exe
COMMENT "Building ${HEX_FILE} nBuilding ${BIN_FILE}")

错误弹出为

ielftool错误:命令行选项中缺少分隔符(应为";"(:"0xFF";

这里有人能帮忙吗?这将是一个很大的帮助。

谢谢。

通过IAR Linux编译器在postBuild中使用ielftool,我也遇到了同样的问题。最后我运行了它,但有一些规则需要考虑:

  • "分隔符必须用引号""("斜杠"也适用(
  • out文件的最后一个参数必须用"包装">
  • 参数之间的spae字符会导致一些错误

示例:/opt/iarsystems/bxarm/arm/bin/ielftool--填充0xFF';'$FLASH_START-$FLASH_START_HEADER--填充0xFF';'$FLASH_PROGRAMMCODE_START-$FLASH_PROGRAMMCODE_END-校验和__checksum:4,crc32,0x0';'$FLASH_START-$FLASH_START_HEADER';'$FLASH_PROGRAMMCODE_START-$FLASH_PROGRAMMCODE_END-verbose"$INPUT_FILE"quot$INPUT_FILE">

#/opt/iarsystems/bxarm/arm/bin/ielftool --fill 0xFF;$FLASH_START-$FLASH_START_HEADER --fill 0xFF;$FLASH_PROGRAMMCODE_START-$FLASH_PROGRAMMCODE_END --checksum __checksum:4,crc32,0x0;$FLASH_START-$FLASH_START_HEADER;$FLASH_PROGRAMMCODE_START-$FLASH_PROGRAMMCODE_END --verbose "$INPUT_FILE" "$INPUT_FILE"

最新更新