Кто-нибудь пытался использовать сжатие zlib на MSP430? У вас есть какие-либо советы о том, как скомпилировать библиотеку для использования в проекте MSP430 (я использую IAR Embedded Workbench)?Сжатие Zlib на MSP430
ответ
Я построил его для нескольких целей, а не только для MSP430, но это не имеет значения. Это все ISO C и зависит только от стандартных вызовов библиотеки. Он использует динамическое распределение памяти, поэтому вам понадобится куча.
Спасибо за ваш ответ. Я смог построить небольшую тестовую программу для msp430 с использованием алгоритма дефляции, но запустил наше пространство стека. Я предполагаю, что это связано с кучей, которую вы упомянули. Можете ли вы подробнее рассказать об этом? – user1148476
Требование к стеку - это другая проблема. Обычно вы будете выделять количество стека где-нибудь в вашем запуске C запуска. Если вы используете какой-либо IDE и инструмент для конфигурирования проекта, для него это вариант. В некоторых случаях проект будет выделять всю оставшуюся память после стека и статическое распределение в кучу, в других вам может потребоваться явно указать размер кучи. В любом случае, мой вопрос о том, что куча - это просто то, что вам нужно. Успех zlib на вашей цели будет зависеть от наличия достаточной памяти в целом и поддержки динамического распределения памяти. – Clifford
Я использовал для сборки zlib как тест для разработки процессора, но по мере того, как мир начал переходить на 64-разрядное, их бессистемное использование беззнакового длинного и беззнакового int и микширования без тщательного приведения типов и т. Д. Могло бы нанести ущерб компиляторам. Возможно, он успокоился, но я ушел от него.
Требуется/требуется тонна памяти, msp430 особенно мала на стороне плунжера по сравнению с некоторыми конкурентами.
У меня есть симулятор msp430, вы можете использовать http://github.com/dwelch67/msp430sim. который легко настроить, чтобы иметь много барана, больше, чем вы найдете в чипе. Althogh zlib все еще может получить полный 64k и не оставить вас с кем-либо. Просто нужно посмотреть, что произойдет. Может быть, я возьму это и попробую сам в качестве теста для моего симулятора. На вышеупомянутом симуляторе или, возможно, в одном из моих других, у меня есть другой инструмент сжатия, который имеет очень (относительно) небольшой объем памяти. Не уверен, что вам нужен zlib специально, или вам просто нужна декомпрессия вообще.
В соответствии с MSP430 datasheets и Wikipedia article у вас недостаточно ОЗУ (оно не более 16 KiB) даже для раздвижного окна (32 KiB). Таким образом, вы не можете использовать алгоритм дефляции для MSP430. Учитывая, что ZLIB - это просто дефлятная реализация, это верно и для ZLIB. Даже вы пытаетесь написать свою собственную дефляционную реализацию, которой вы не сможете добиться. Потому что для дефлята требуется 32 KiB для скользящего словаря и дополнительная память для деревьев хаффмана. Это только для декомпрессионной части. Для сжатия вам нужна дополнительная память для поиска ссылок на хэш-цепочку, размер словаря 7.5 * = 240 KiB (в соответствии с реализацией сглаживания 7zip). Если вам действительно нужно сжатие для этой небольшой архитектуры, я советую посмотреть на алгоритмы сжатия LZSS, закодированные в байтах. Они быстрые и легкие. Но, недостаточно сильные, чтобы конкурировать с дефлятом из-за особенно энтропийных различий в кодировании.
Хороший улов на этом, спас меня некоторое время, экспериментируя. –
Имейте в виду, что большинство алгоритмов сжатия являются ресурсоемкими. Некоторые из них имеют некоторый компромисс между мощностью процессора и памятью (т. Е. Некоторые используют большую память с небольшим количеством мощности ЦП или наоборот). Вы даже можете найти некоторые алгоритмы, которые используют до 13 ГБ памяти. [Здесь] (http://mattmahoney.net/dc/text.html) является эталонным эталоном, в котором указано как время обработки, так и использование памяти для популярных компрессоров. –
Правильно, я знаю, что это был случай, когда я не знал, сколько он хочет, и мой подход заключался в эксперименте вместо исследования. Спасибо за ссылку, которая будет весьма полезна. –
- 1. Сжатие Zlib через PHP
- 2. сжатие и декомпрессия zlib
- 3. zlib Сжатие без записи на диск
- 4. сжатие zlib больше максимального сжатия
- 5. Сжатие Base64 строка с zlib
- 6. node.js - сжатие zlib (RFC 1950)
- 7. Ускоренное сжатие сжатого массива C (ZLIB) в PHP (ZLIB)
- 8. Node.js: zlib Сжатие в подключении tcp
- 9. Накопительное сжатие растущего буфера (C++, zlib)
- 10. Сжатие Zlib слишком велико в размере
- 11. Сжатие не работает в библиотеке ZLib
- 12. ZLib PNG Сжатие с битовой глубиной 1
- 13. сжатие многоадресных пакетов с библиотекой zlib
- 14. Сжатие данных в куски с использованием Zlib
- 15. C++ zlib сжатие строк в файле
- 16. Openshift: Php 5.4 отключить сжатие zlib
- 17. Сжатие ZLib добавляет нежелательные символы к данным
- 18. MSP430 (msp430-gcc) linker undefined ссылка на
- 19. python сжатие нескольких данных с использованием gzip или zlib
- 20. Сжатие Zlib Завернутый путь к файлам в Wordpress Multisite
- 21. Сжатие C++/zlib/gzip и C# Декомпрессия GZipStream не работает
- 22. C++ Сжатие строки с использованием zlib, именования документа
- 23. Сжатие/распаковка массива символов с использованием zlib, некоторые символы отсутствуют
- 24. Сжатие данных с использованием словаря Zlib в node.js
- 25. Вход кодов Морзе на MSP430
- 26. Перемещение типов ELF на MSP430
- 27. Git DEFLATE/оптимизированный zlib
- 28. Измерение тактовой частоты на выводе на MSP430
- 29. Переустановить zlib на centos
- 30. Ссылка на libpng & zlib?
Вам абсолютно необходим zlib? или просто алгоритм сжатия? – Cyan
http://stackoverflow.com/questions/3203321/lzw-compression-decompression-under-low-memory-conditions –
http://stackoverflow.com/questions/3767640/compact-decompression-library-for-embedded-use –