我正在为 STM32 MCU 构建固件更新程序。到目前为止,我已经在设备上编写了引导加载程序软件,与 FLASH 中的主应用程序分开。
我需要做的是生成一个二进制文件,它将作为 FLASH 中主应用程序的替换代码。这意味着我可以通过 UART 传输文件并覆盖主应用程序。我该如何着手制作这样的文件?
代码是使用 stm32CubeIDE 编写的,它在构建后生成一个 .elf 文件。在通过 UART 传输之前,我将向此二进制代码添加一个 header 。
非常感谢您的帮助,
哈利
在 CubeIDE 中,转到 项目设置 -> “C/C++ 构建”组 -> 设置 -> “工具设置”选项卡 -> MCU 构建后输出 -> “转换为 Intel Hex 文件”复选框 (如果您没有看到这些选项,您可能需要重新启动 IDE - 这样的错误仍然存在)
这将使 IDE 将输出转换为易于解析的 HEX 文件。你可以找到the format description in Wikipedia .您可以在发送到引导加载程序之前对其进行解析。
或者,您可以设置复选框“转换为二进制文件”,这将生成原始二进制文件。但如果您的代码不是从零地址开始,可能会带来一些麻烦。
我是一名优秀的程序员,十分优秀!