我需要一个适用于 ARM Cortex M3 或 4 的经过验证的压缩库。在从 IC 发货之前,我将使用该库来压缩来自外设的一些数据。
任何指示将不胜感激。到目前为止,我已经研究过 LZ4c,但让它在 ARM 上运行并不容易。
https://github.com/pfalcon/uzlib是高度优化的最小库(基于早期的tinf库),它与标准DEFLATE/zlib/gzip压缩一起使用。它可以在内存缓冲和流式解压模式下工作(在后一种情况下它可以处理无限大小的文件)。对于压缩,它实现了更简单的压缩算法,但仍然将结果格式化为 zlib 兼容的比特流,因此任何其他软件都可以解压缩它。
该库在 Cortex-M0 上运行不会有任何问题(取决于所使用的字典大小,对于小 RAM 系统,应使用小于默认 32KB 的值)。
它用于 MicroPython https://github.com/pfalcon/micropython ,其中大约有 40KB 的可用 RAM,用 Python 编写的应用程序可以通过 TLS 连接下载 tarball 并将它们解压缩到文件系统(“upip”包)经理)。
我真的很喜欢BCL,它是一个轻量级、易于集成的库。我已经在 Cortex M3 和 M4 部件上使用过它。
我花了一些时间来整合LZ4。这是一个很好的工具,使用 ARM Cortex M4 在 0.5 毫秒内压缩 20KB 数据。堆栈要求约为 16Kb(可配置为 4 个)。好一个。
你可以查看这个repo,我在这里做了一个压缩示例: https://github.com/Bsm-B/Stm32-FatFs-Gzip