在STM32设备中读写文件到闪存末尾

Reading and Writing file to end of flash memory in STM32 device

我有一些功能正常的固件,我正在将其部署到具有 64K 闪存(从地址 0x8000000 开始)的 STM32 部件。我想在闪存末尾使用一些内存 space 来在 STM32 部件本身上存储 gzip 文件。

使用 openOCD 将此文件写入闪存中某个位置的最佳方法是什么?我应该以某种方式将它捆绑到固件 ELF 中吗?我是否应该刷新固件,然后使用另一个闪存命令将文件写入闪存的特定部分space?

一旦写好,我如何使用 openOCD 从该位置提取文件并以 gzip 可以解压缩的格式取回文件?

对于第一个问题,this thread讨论了如何在可执行文件中嵌入一些资源。

在命令行中使用 openOCD 直接加载二进制文件可能会更容易。

对于第二个问题,您将可以直接访问Flash 中文件的二进制内容。棘手的一点是你必须实现一个解压缩器来解压缩它。可能有很多源代码可以这样做,但也许您可能想评估这是否是最佳解决方案:您可以通过存储压缩文件来节省内存,但您会 "waste" 一些代码来解压缩它?