如何生成 stm32 代码的二进制文件?

arr*_*y_h 2 c compilation stm32

我正在为 STM32 MCU 构建固件更新程序。到目前为止,我已经在设备上编写了引导加载程序软件,与 FLASH 中的主应用程序分开。

我需要做的是生成一个二进制文件,它将作为 FLASH 中主应用程序的替换代码。这意味着我可以通过 UART 传输文件并覆盖主应用程序。我该如何制作这样的文件?

代码是使用 stm32CubeIDE 编程的,它在构建后生成一个 .elf 文件。在通过 UART 传输之前,我将为此二进制代码添加一个标头。

非常感谢您的帮助,

哈利

Ate*_*Lux 5

在 CubeIDE 中,转到Project Settings -> "C/C++ Build" group -> Settings -> "Tool Settings" 选项卡 -> MCU Post build 输出 -> "Convert to Intel Hex file" 复选框 CubeIDE 中的十六进制文件选项 (如果您没有看到这些选项,您可能需要重新启动 IDE - 这样的错误仍然存​​在)

这将使 IDE 将输出转换为易于解析的 HEX 文件。您可以在 Wikipedia 中找到格式说明。您可以在发送到引导加载程序之前对其进行解析。

或者,您可以设置复选框“转换为二进制文件”,这将生成原始二进制文件。但是如果你的代码不是从零地址开始,它可能会带来一些麻烦。