Hallo! Hat jemand Erfahrung mit Entpacken von Dateien auf einem Cortex-M4? Freie Bibliotheken, zusätzliche Ressourcen für's Entpacken (zusätzlicher zur Dateigröße) ... Danke für die Unterstützung. Grüße
Meinst du so etwas? https://www.segger.com/products/compression/emcompress/ Ist aber leider keine freie Bibliothek.
Packer schrieb: > Hat jemand Erfahrung mit Entpacken von Dateien auf einem Cortex-M4? Worum genau geht es denn? Geht es nur ums dekomprimieren? Oder nur ums ein Containerformat das mehrere Dateien halten kann? Oder um beides/eine Kombination dieser? Hast du dich schon auf einen Algorithmus festgelegt? Eventuell findet sich auf GitHub was (direkt dort suchen, nicht über google, und spezifisch z.B. gzip), und im Notfall kann man auch selbst was implementieren. Tar ist (abgesehen von den vielen Headervariationen) tot simpel. Gzip bräuchte glaube ich auch nicht so viel, und die gzip implementation in busybox sieht auch nicht so extrem komplex aus. Eventuell kann man da was anpassen oder wiederverwenden.
LZ4 geht in 84 bytes auf einem Cortex-M0 (und damit natürlich auch auf einem M4): https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/lz4-decompression-routine-for-cortex-m0-and-later
hi sorry wenn ich den thread entere Mich interessiert das thema auch. Primär aber die container sache. was ich aus den oberen Links gelesen habe ist eher kompression/dekompression. Wie wird das jedoch mit mehreren Dateien gelöst ? Idee : Per TCP ein Paket zum M4 übertragen, dort entpacken und die Einzeldateien auf einem Flash speichern. z.B. Die html Dateien für den Webserver.
https://en.wikipedia.org/wiki/Tar_(computing)#File_format https://www.freebsd.org/cgi/man.cgi?query=tar&apropos=0&sektion=5&manpath=FreeBSD+7.0-RELEASE&arch=default&format=html
Ein normaler LZIP ist kein Hexenwerk. Den habe ich auf einem popeligen MSP430 zu Fuß umgesetzt. Gerade das Entpacken braucht kaum Aufwand, weil man im Grunde nur den Marker sucht und dann entweder aus bereits vorher entpackten Daten oder aus dem Eingangsdatenstrom kopiert. Wenn man den Aufwand für das Speicherhandling (Lesen aus zwei Puffern, schreiben in einen) weglässt, ist der Rest in vielleicht 10 Zeilen abzuhandeln.
645zre schrieb: > sorry wenn ich den thread entere Bitte mache einen eigenen Thread auf. Die Frage könnte für andere auch relevant sein, ohne dass die sich durch die anderen Antworten wühlen müssen. 645zre schrieb: > Wie wird das jedoch mit mehreren Dateien gelöst ? Einige Formate (z.B. ZIP oder TAR) enthalten mehrere Streams und dazugehörige Dateinamen. Um die in deinem Flash zu speichern, brauchst du ein Dateisystem, welches es dir ermöglicht, Dateien anhand ihres Namens zu finden. Ein einfaches Beispiel ist FAT, welches auch auf SD-Karten verwendet wird und wofür es viele Implementationen gibt.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.