我正在使用 CMake 为 ARM Cortex-M 进行交叉编译以配置项目。
到目前为止,我已经成功地设置了项目并且正在生成可执行文件。但是,要刷新电路板,我需要一个“.hex”。文件。
我已经按照 gcc 的 Nordic nRF5SDK 示例来获取有关编译和链接阶段的一些线索,并将它们传递给 CMake 例程。
但是,我无法生成任何“.out”文件来正确提取“.hex”文件。我玩过编译标志和链接器标志,但没有成功。
我已经在工具链文件和编译器中设置了初始化标志,十六进制是使用自定义命令生成的:
(...)
add_executable(main main.c)
target_link_libraries(main sdk_lib)
add_custom_command(
TARGET
main
POST_BUILD
COMMAND
${ARM_OBJCOPY} -O ihex ${CMAKE_CURRENT_BINARY_DIR}/main${CMAKE_EXECUTABLE_SUFFIX} ${CMAKE_SOURCE_DIR}/main.hex
)
(...)
问题是我使用二进制文件来提取十六进制,而不是正确的“.out”文件。
如何在不使用与主构建并行的另一个自定义命令的情况下生成它?
PS:这里是项目的当前状态https://github.com/NunoRVicente/cmake-arm-toolchain