在ARM Cortex-M3处理器中使用LZ4HC算法

在ARM Cortex-M3处理器中使用LZ4HC算法,arm,compression,cortex-m3,lz4,Arm,Compression,Cortex M3,Lz4,我有一个嵌入式系统,板上有一个闪存,用来存储大量数据。主控制器是一个ARM Cortex-M3处理器,我应该压缩放在闪存一部分的数据,并将压缩后的数据放在闪存的另一部分 既然SRAM的数量在这类系统中是有限的,那么我该如何使用LZ4HC算法呢?我不能像在PC机上那样一次压缩整个数据,我想我必须对一小块数据或一块一块地压缩(例如,每512或4096字节的数据)。我只是不知道怎么做。我不能完全理解这些功能。 甚至可以逐块执行此操作吗? 我找不到任何例子。而且开源代码并没有很好的文档。事实上,我认为没

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

既然SRAM的数量在这类系统中是有限的,那么我该如何使用LZ4HC算法呢?我不能像在PC机上那样一次压缩整个数据,我想我必须对一小块数据或一块一块地压缩(例如,每512或4096字节的数据)。我只是不知道怎么做。我不能完全理解这些功能。
甚至可以逐块执行此操作吗?

我找不到任何例子。而且开源代码并没有很好的文档。事实上,我认为没有文件

我建议您使用特定于嵌入式系统的库。这些库通常使用较低的内存量,设计用于每个周期压缩小块数据

如果您不能使用LZ4HC,或者如果您想实现自己的库,那么一个好的起点是,基于LZSS的嵌入式系统库


ARM处理器的汇编中还有一个LZ4解压实现。

谢谢,但它必须是LZ4。否则他们就不会去了。我一直在寻求帮助。显然,这是一个大问题,不太适合嵌入式系统,但有机会使其工作。一旦我发现有用的东西,我会更新这篇文章。