CMake命令查询(add_custom_command)

63lcw9qa  于 2022-12-11  发布在  其他
关注(0)|答案(1)|浏览(200)

我使用以下命令生成校验和值、.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”
有谁能帮上忙吗?这将是一个很大的帮助。

  • 谢谢-谢谢
0sgqnhkj

0sgqnhkj1#

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

  • 分隔符“;”必须用引号“';“”(“斜杠”作品也)
  • out-file的最后一个参数必须由“” Package
  • 参数之间的空格字符导致一些错误

例如:/opt/iarsystems/bxarm/arm/bin/ielftool --填充0xFF ';“$FLASH_START-$FLASH_START_HEADER --填充0xFF”;“$FLASH_PROGRAMMCODE_START-$FLASH_PROGRAMMCODE_END -校验和_校验和:4,crc 32,0x 0”;“$闪存开始-$闪存开始标题”;'$FLASH_程序代码_开始-$FLASH_程序代码_结束--详细信息“$INPUT_FILE”“$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"

相关问题