我有这个嵌入式系统,在主板上放置一个闪存来存储大量数据。主控制器是一个ARM Cortex-M3处理器,我应该压缩放在闪存的一部分上的数据,并将压缩数据放在闪存的另一部分上。
既然SRAM的数量在这些系统中受到限制,我究竟能使用LZ4HC算法吗?我不能像在PC中一样压缩整个数据,我想我必须在一小块数据或逐块(例如每512或4096字节的数据)上执行此操作。我只是不确定如何。我无法完全理解这些功能 甚至可以一块一块地做这件事吗? 我找不到任何例子。而开源代码并没有提供良好的文档。其实我认为没有文件。
答案 0 :(得分:1)
我建议您使用专用于嵌入式系统的库。这些库通常使用少量内存,旨在每周期压缩一小块数据。
如果你不能使用LZ4HC或者你想要实现自己的库,一个好的起点是heatshrink,一个基于LZSS的嵌入式系统库。
ARM处理器here的汇编中还有一个LZ4解压缩实现。