我正在为 STM32 MCU 构建固件更新程序。到目前为止,我已经在设备上编写了引导加载程序软件,与 FLASH 中的主应用程序分开。
我需要做的是生成一个二进制文件,它将作为 FLASH 中主应用程序的替换代码。这意味着我可以通过 UART 传输文件并覆盖主应用程序。我该如何制作这样的文件?
代码是使用 stm32CubeIDE 编程的,它在构建后生成一个 .elf 文件。在通过 UART 传输之前,我将为此二进制代码添加一个标头。
非常感谢您的帮助,
哈利
在 CubeIDE 中,转到Project Settings -> "C/C++ Build" group -> Settings -> "Tool Settings" 选项卡 -> MCU Post build 输出 -> "Convert to Intel Hex file" 复选框 (如果你没有看到这些选项,您可能需要重新启动IDE - 这样的错误仍然存在)
这将使 IDE 将输出转换为易于解析的 HEX 文件。您可以在 Wikipedia 中找到格式说明。您可以在发送到引导加载程序之前对其进行解析。
或者,您可以设置复选框“转换为二进制文件”,这将生成原始二进制文件。但是如果你的代码不是从零地址开始,它可能会带来一些麻烦。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句