1

我有这个嵌入式系统,板上放置了一个闪存来存储大量数据。主控制器是一个 ARM Cortex-M3 处理器,我应该压缩放在闪存的一部分上的数据,并将压缩后的数据放在闪存的另一部分。

现在由于这类系统中 SRAM 的数量是有限的,我该如何使用 LZ4HC 算法呢?我不能像在 PC 中那样一次压缩整个数据,我想我必须对一小块数据或逐块执行此操作(例如每 512 或 4096 字节的数据)。我只是不确定如何。我无法完全理解这些功能。
甚至可以逐块执行此操作吗?
我找不到任何例子。而且开源代码没有附带好的文档。实际上我认为没有文档。

4

1 回答 1

1

我建议您使用特定于嵌入式系统的库。这些库通常使用少量内存,并且旨在每个周期压缩小块数据。

如果您不能使用 LZ4HC 或者如果您想实现自己的库,那么可以从heatshrink开始,这是一个用于嵌入式系统的基于 LZSS 的库。

这里还有一个针对 ARM 处理器的汇编中的 LZ4 解压缩实现。

于 2017-01-05T10:46:15.550 回答