1

我必须在 MCU 内部存储器的有限空间中嵌入一个大文本文件。该 MCU 稍后会将文本文件的内容用于某些目的。
内存限制不允许我将文件内容直接嵌入到我的代码中(假设我使用字符数组来存储文件内容),但是如果我压缩文件的内容(使用 zip 或 gzip 等轻量级算法)那么一切都会好起来的。
假设 MCU 使用getBytes(i, len)函数来读取我的数组的内容(其中i是所需字节开头的索引 &len是要读取的数据长度),这里的问题是当我压缩内容并将其存储在设备上时(在我的字符数组)我不能再使用 getBytes函数来获取目标数据,所以如果我可以在上面写一个包装器getBytes将压缩内容映射到请求内容的功能,那么我的问题将得到解决。
我对 MCU 没有处理限制,内存量也受到限制,并且我知道对 zip 压缩文件的内容的访问是顺序的,所以我不知道是否有可能以可接受的方式使用在这样的环境中使用 C 或 C++?

4

1 回答 1

2

绝对有可能以简单有效的方式做到这一点。

但是,最好使用分段压缩(以压缩比为代价)而不是一次压缩/解压缩整个文件,否则您需要将整个解压缩文件存储在 RAM 中。

小块,强算法的压缩比和相对弱的算法差别不大。所以我推荐使用简单的压缩算法。

磁盘压缩算法最适合用于压缩/解压缩块的目的。

于 2013-05-15T07:27:24.533 回答