Forum: Mikrocontroller und Digitale Elektronik Entpacken von Archiven (zip) auf einem Mikroprozessor


von Neb N. (bluemorph)


Lesenswert?

Hallo Mikrocontroller-Gemeinde,

hat jemand von euch schon mal Erfahrung mit zip-Archiven und deren 
Dekomprimierung auf Mikroprozessoren/embedded Systemen gemacht?

Meine bisherige Netz-Suche verlief mehr oder weniger erfolglos.

Außer der zLib die oft als "für embedded Systeme geeignet" zu finden 
ist, habe ich keine Librarys/c-Quellcodes gefunden, mit denen sich zum 
Beispiel auf einem PIC32MX695 und einen entsprechenden File-IO-System 
auch zip-Dateien entpacken lassen.

Über einige Antworten würde ich mich freuen.

von c-hater (Gast)


Lesenswert?

Ben N. schrieb:

> Außer der zLib die oft als "für embedded Systeme geeignet" zu finden
> ist, habe ich keine Librarys/c-Quellcodes gefunden, mit denen sich zum
> Beispiel auf einem PIC32MX695 und einen entsprechenden File-IO-System
> auch zip-Dateien entpacken lassen.

Es hängt eigentlich üblicherweise nur von einem einzigen Punkt ab: Im 
Zielsystem muß genug freier RAM für das "Wörterbuch" der Dekompression 
verfügbar sein.

Dank der lausig organisierten Microchip-Datenblätter war es mir nicht 
möglich, mit einem flüchtigen Blick dort hinein zu ermitteln, wieviel 
RAM nun der angegebene Controller tatsächlich hat...

D.h.: Das wirst du einfach selbst tun müssen. Der Vergleich mit dem 
Bedarf der zLib sollte dann kein Problem mehr darstellen. Schließlich 
benutzt du freiwillig C und solltest deshalb in der Lage sein, den Code 
der zLib daraufhin abzuklopfen, wie hoch der maximale RAM-Bedarf für das 
"Wörterbuch" ist...

von Teo D. (teoderix)


Lesenswert?

c-hater schrieb:
> Dank der lausig organisierten Microchip-Datenblätter war es mir nicht
> möglich, mit einem flüchtigen Blick dort hinein zu ermitteln, wieviel
> RAM nun der angegebene Controller tatsächlich hat...

LOL

128k

von Neb N. (bluemorph)


Lesenswert?

Danke c-hater für deine Antwort.

Das Datenblatt zum Prozessor ist hier zu finden 
http://www.microchip.com/wwwproducts/Devices.aspx?product=PIC32MX695F512L
Der Prozessor ist mit 128k RAM ausgestattet.

Vielleicht hat ja noch wer anders ein paar Tipps oder Anregungen oder 
sogar Beispiel-Sourcen.

von c-hater (Gast)


Lesenswert?

Teo Derix schrieb:

> LOL
>
> 128k

Das steht auf welcher Seite des Datenblatts?

Bei Atmel stehen solche grundlegenden Informationen immer auf Seite 1...

von c-hater (Gast)


Lesenswert?

Ben N. schrieb:

> Das Datenblatt zum Prozessor ist hier zu finden
> http://www.microchip.com/wwwproducts/Devices.aspx?product=PIC32MX695F512L

Das ist nicht das Problem...

> Der Prozessor ist mit 128k RAM ausgestattet.

Das dem DB zu entnehmen schon eher...

> Vielleicht hat ja noch wer anders ein paar Tipps oder Anregungen oder
> sogar Beispiel-Sourcen.

Wenn das Teil wirklich 128k RAM hat, sollte die zLib technisch 
keinerlei Problem bereiten. Wenn du Probleme hast, liegt es wohl 
entweder daran, dass C keinesfalls so portabel ist, wie die C-Apologeten 
immer behaupten oder alternativ daran, daß du keine Ahnung von C hast...

Tja, hart ist das Leben, nicht immer genügt Copy&Paste...

von Sebastian V. (sebi_s)


Lesenswert?

Ich denke die beste Option wird wohl sein zlib zu benutzen. Ich habe 
jetzt auf die schnelle auch nur diverse Implementierungen gefunden, die 
dann nur das zip Format implementieren aber die eigentliche 
Dekompression macht immer zlib. Aus der zconf.h Datei:

The memory requirements for inflate are (in bytes) 1 << windowBits that 
is, 32K for windowBits=15 (default value) plus a few kilobytes for small 
objects.

Mit 128KB sollte sich da schon was machen lassen. Man braucht natürlich 
auch noch ein paar Buffer aber das sollte noch gehen wenn du den 
großteil des RAM nicht schon für etwas anderes verplant hast.

c-hater schrieb:
> Das steht auf welcher Seite des Datenblatts?

Auflistung der verschiedenen Mikrocontroller der Serie ab Seite 2. Der 
vom TO benutze µc steht dann Seite 3.

von W.S. (Gast)


Lesenswert?

Ben N. schrieb:
> hat jemand von euch schon mal Erfahrung mit zip-Archiven und deren
> Dekomprimierung auf Mikroprozessoren/embedded Systemen gemacht?

Aber ja doch - ich hab's dann schlichtweg bleibengelassen.

Also, sowas wie "Mikroprozessoren/embedded Systemen" umfaßt ein 
riesiges Feld, da solltest du dir viel früher Gedanken machen, bevor 
du in die Tasten haust.

ZIP Archive sind was für Dateien, die stehen in Speichermedien und zum 
Entkomprimieren braucht es nicht nur Platz im RAM zum Entkomprimieren, 
sondern auch zum Verfrachten der Ergebnisse. Das Ganze ist also etwas 
für eher größere Systeme, wie z.B. MIPS oder ARM mit 8 MB SDRAM, wie 
man's seit Jahren in DVD-Playern usw. hat. Dort hat man dann auch ne 
passende v.Neumann Architektur für sowas wie zlib.

Frage: Ist dein Beitrag bloß so, der Unterhaltung wegen? Oder hast du 
ernsthafte Ambitionen, nen MP3- oder DVD-Player oder ein Navi zu 
basteln?

W.S.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.