2012-01-13 28 views
6

誰でもMSP430でzlib圧縮を試みましたか? MSP430プロジェクト(IAR Embedded Workbenchを使用しています)で使用するためにライブラリをコンパイルする方法に関するアドバイスはありますか?MSP430でのZlib圧縮

+1

zlibが絶対に必要ですか?または単に圧縮アルゴリズム? – Cyan

+0

http://stackoverflow.com/questions/3203321/lzw-compression-decompression-under-low-memory-conditions –

+0

http://stackoverflow.com/questions/3767640/compact-decompression-library-for-embedded-use –

答えて

1

MSP430ではなく、いくつかのターゲット用に構築しましたが、それは問題ではありません。これはすべてISO Cであり、標準ライブラリ呼び出しのみに依存します。それは動的メモリ割り当てを使用するので、ヒープが必要です。

+0

あなたの答えをありがとう。私は、deflateアルゴリズムを使用してmsp430のための小さなテストプログラムを構築することができましたが、我々のスタックスペースを走らせました。私はこれがあなたが言及したヒープと関係があると仮定しています。それについてもっと詳しく説明できますか? – user1148476

+0

スタックの要件は別の問題です。通常は、Cランタイム起動時のどこかにある量のスタックを割り当てます。任意の種類のIDEとプロジェクト構成ツールを使用している場合は、そのためのオプションがあります。場合によっては、スタックと静的割り当ての後に残っているすべてのメモリをヒープに割り当てる場合もあれば、ヒープサイズを明示的に指定する必要がある場合もあります。いずれにせよ、ヒープを持つことについての私の主張は、単にあなたが必要とすることです。ターゲット上でのzlibの成功は、一般に十分なメモリを持ち、動的メモリ割り当てをサポートすることに依存します。 – Clifford

2

私はzlibをプロセッサ開発のテストとしてビルドしましたが、64ビットへの移行が始まったので、慎重な型キャストなどを行わずに符号なしlongとunsigned intを混在させて混在させると、それは今落ち着いているかもしれないが、私はそれを使用することから離れた。

メモリが必要/必要ですが、msp430はラム側では競合他社と比較して特に小さいです。

私はhttp://github.com/dwelch67/msp430simを使用できるmsp430シミュレータを持っています。あなたがチップで見つけられるよりも多くのRAMを持つように構成するのは簡単です。 Althogh zlibはまだ完全な64kを望んでいるかもしれません。ちょうど何が起こるか見る必要があります。たぶん私はこれを取って、自分でシミュレータのテストとしてそれを試してみます。上記のシミュレータまたは多分私の他の私は非常に(比較的)小さなメモリフットプリントを使用する別の圧縮ツールを使用しています。特にzlibが必要なのか、一般的に何らかの種類の減圧が必要なのかどうかは不明です。

8

MSP430 datasheetsWikipedia articleによれば、スライディングウィンドウ(32 KiB)でも十分なRAM(最大16 KiB)はありません。したがって、MSP430のための収縮アルゴリズムを使用することはできません。 ZLIBについて考えると、ZLIBでもあまりにも収縮した実装です。あなたが成功できなかった独自の収縮実装を作成しようとしても。なぜなら、収縮は、辞書をスライドさせるために32キロバイト、それにハフマンツリーのためにいくらかの余分なメモリを必要とするからです。それは減圧部分だけです。圧縮の場合、7.5 *辞書サイズ= 240 KiBのハッシュチェーンマッチファインダーのために余分なメモリーが必要です(7zipのdeflate実装による)。その小さなアーキテクチャで本当に圧縮が必要な場合は、カスタムバイトコードLZSS圧縮アルゴリズムを調べることをお勧めします。彼らは速く軽量です。しかし、特にエントロピー符号化の違いにより、収縮と競合するほど強くない。

+0

それをうまく乗り越えて、私は実験をしばらく時間を節約しました。 –

+0

多くの圧縮アルゴリズムはリソースが不足していることに注意してください。それらのうちのいくつかは、CPU電力とメモリとの間にある程度のトレードオフを有している(すなわち、あるものは、CPU電力の少ないものを多く使用し、その逆もある)。 GiBメモリを最大13個使用するアルゴリズムもあります。 [Here](http://mattmahoney.net/dc/text。html)は、一般的な圧縮器の処理時間とメモリ使用量の両方を一覧表示する参照ベンチマークです。 –

+0

そうです、私はそれがどれくらいのことを望んでいるのか分からないケースでした。私のアプローチは研究の代わりに実験することでした。非常に便利なリンクをありがとう。 –

関連する問題