У меня есть проблема, которая, вероятно, проста, но я не могу обойти ее.
Я дефлятирую с помощью скрипта Python (импорт zlib) и делаю инфляцию на встроенной платформе, используя zlib версии 1.2.11, 15 января 2017 года.
В целях тестирования я создал постоянную таблицу в ПЗУ, которая представляет собой дефлированные данные, созданные скриптом.
Структура z_stream называется test_stream.
Если я укажу test_stream.next_in на постоянную таблицу / буфер в ПЗУ, инфляция будет работать нормально, данные будут восстановлены, все в порядке.
Но если я скопирую из ПЗУ в буфер ОЗУ и передам этот буфер ОЗУ в test_stream.next_in, inflateInit (& test_stream) вернет Z_DATA_ERROR (-3), а test_stream.msg содержит: "- отсутствует конец блока "или" установлена недопустимая длина кода ".
Очевидно, я проверил, что буфер ОЗУ правильно скопирован из ПЗУ.
Я что-то здесь упускаю, буфер оперативной памяти нуждается в выравнивании или что-то еще?
Я знаю, это кажется странным, но любая идея будет оценена.