zlib Z_DATA_ERROR膨胀问题

时间:2018-07-03 07:08:21

标签: zlib

我遇到的这个问题可能很简单,但我无法解决。 我使用python脚本放气(导入zlib),并使用2017年1月15日的zlib 1.2.11版在嵌入式平台上进行充气。

出于测试目的,我在ROM中创建了一个常量表,该表是脚本创建的压缩数据。 z_stream结构称为test_stream。

如果我将test_stream.next_in指向ROM中的常量表/缓冲区,则膨胀工作正常,数据可以恢复正常,没问题。

但是,如果我从ROM复制到RAM缓冲区并将该RAM缓冲区传递给test_stream.next_in,则inflateInit(&test_stream)返回Z_DATA_ERROR(-3),并且test_stream.msg包含:“-缺少块末尾”或“设置了无效的代码长度”。

显然,我已经检查了RAM缓冲区是否已从ROM复制正确。 我在这里缺少什么吗,RAM缓冲区是否需要对齐或其他? 我知道这看起来很奇怪,但是任何想法都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

否,没有对齐要求。您必须为其提供了错误的地址,或者未正确复制压缩数据。