我使用以下命令生成校验和值、.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"