zlib - zlib Z_DATA_ERROR 膨胀问题
问题描述
我有这个问题,这可能很简单,但我无法解决它。我使用 python 脚本(导入 zlib)放气,并使用 zlib 版本 1.2.11 在嵌入式平台上进行充气,2017 年 1 月 15 日。
出于测试目的,我在 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 缓冲区是否需要对齐或其他什么?我知道这看起来很奇怪,但任何想法都会受到赞赏。
解决方案
不,没有对齐要求。您必须给它错误的地址,或者没有正确复制压缩数据。
推荐阅读
- android - 在 Android Studio 中在 Android Pie 设备上构建应用程序失败
- node.js - 从IONIC传输Node JS API中的图像文件时将FormData设为Null
- r - rMap 塞尔维亚在哪里找?
- java - java.util.ConcurrentModificationException 流
- jpa - 在 OneToOne 关联中禁用将 2 个孩子保存到父母的可能性
- apache-camel - 在骆驼中每小时刷新一次属性
- alexa - 自定义 Alexa 技能不适用于回声点,但适用于模拟器
- html - “文本溢出:省略号”和“溢出:隐藏”在我的中无法正常工作,并出现水平滚动条
- c - 无操作 C 宏的“全局范围内的分号”警告的解决方法
- timer - 在 STM32 中使用定时器实现延迟