Сжатие Zlib на MSP430 - PullRequest
       55

Сжатие Zlib на MSP430

6 голосов
/ 14 января 2012

Кто-нибудь пытался использовать сжатие zlib на MSP430?Есть ли у вас какие-либо рекомендации по компиляции в библиотеку для использования в проекте MSP430 (я использую IAR Embedded Workbench)?

Ответы [ 3 ]

8 голосов
/ 14 января 2012

Согласно таблицам MSP430 и из статьи Википедии , у вас недостаточно ОЗУ (не более 16 КиБ) даже для просто скользящего окна (32 КиБ).Таким образом, вы не можете использовать любой алгоритм дефляции для MSP430.Учитывая, что ZLIB является реализацией только для выкачки, это верно и для ZLIB.Даже если вы попытаетесь написать свою собственную реализацию deflate, у вас ничего не получится.Потому что для deflate требуется 32 КиБ для скользящего словаря и немного дополнительной памяти для деревьев Хаффмана.Это только для декомпрессионной части.Для сжатия вам понадобится дополнительная память для поиска совпадений цепочки хешей, которая составляет 7,5 * размер словаря = 240 КиБ (согласно реализации deflate 7zip).Если вам действительно нужно сжатие для этой небольшой архитектуры, я советую взглянуть на алгоритмы сжатия LZSS с пользовательскими байтами.Они быстрые и легкие.Но недостаточно сильны, чтобы конкурировать с дефлятом из-за различий в энтропийном кодировании.

2 голосов
/ 14 января 2012

Раньше я собирал zlib в качестве теста для разработки процессоров, но когда мир начал переходить на 64-битные, их случайное использование unsigned long и unsigned int и микширование без тщательного приведения типов и т. Д. Привело бы к хаосу в компиляторах. Возможно, он уже успокоился, но я ушел от его использования.

ему нужно / нужно тонны памяти, msp430 особенно мал со стороны оперативной памяти по сравнению с некоторыми конкурентами.

У меня есть симулятор msp430, который вы можете использовать http://github.com/dwelch67/msp430sim., который легко настроить, чтобы иметь много оперативной памяти, больше, чем вы найдете в чипе. Althogh zlib может все еще хотеть полные 64 КБ и не оставлять вас ни с кем. Просто нужно посмотреть, что получится. Может быть, я возьму это на себя и попробую сам в качестве теста для моего симулятора. На вышеупомянутом симуляторе или, может быть, на одном из моих других я использовал другой инструмент сжатия, который занимает очень (относительно) небольшой объем памяти. Не уверен, нужен ли вам конкретно zlib или вам нужна какая-то декомпрессия вообще.

1 голос
/ 14 января 2012

Я создал его для ряда целей, а не для MSP430, но это не должно иметь значенияЭто все ISO C и зависит только от стандартных библиотечных вызовов.Он использует динамическое распределение памяти, поэтому вам понадобится куча.

...