Hallo.. wir evaluieren gerade eine Funktion für ein bestehendes Projekt. Es geht dabei darum, eine komprimierte (Format können wir festlegen) Datei in einem 32bit µC (Renesas RX71M 240MHz 512kB RAM, 4MB Flash + externe SD Karte) zu entpacken. Quelle und Ziel ist jeweils die SD Karte (wird mittels SPI nicht SDHI angesprochen). RAM ist intern noch genügend vorhanden > 300kB, RTOS nützen wir nicht. Hat damit schon jemand Erfahrung, die Beiträge die man so liest sind entweder schon älter oder zwiegespalten. An sich würde uns GZIP im Moment am besten gefallen. Danke Dave
Normalerweise entpackt man die Daten an der Quelle und schiebt die Rohdaten direkt oder via µC auf die SD Karte. Das ist in den meisten Fällen schneller. Gleichzeitig Lesen und Schreiben ist bei SD Karten schon ein Problem und wird ohne großzügiges Cachen eher lahm. Denn die SD Karte taucht zum Schreiben eine Weile ab. GZIP Dekompression (zlib) müsste man locker in 300KB rein bekommen - dann wäre IMHO auch noch Platz für Caches übrig.
Jim M. schrieb: > GZIP Dekompression (zlib) müsste man locker in 300KB rein bekommen Bekommt man locker in 30000 (oft nimmt man allerdings statt 16k gerne 32k Tabellengrösse plus ein paar hundert byte Programm, kann komprimieren und dekomprimieren. So wie ich es verstehe kann er sich ja ein Verfahren aussuchen und muss nicht dutzende unterstützen.
Da ihr durch SPI limitiert seid könnte es schneller sein, die Daten nicht auf die Karte zurückzuschreiben, sondern jedes Mal während dem Laden zu entpacken.
Moin, Da wuerd' ich auch immer mal ein Auge auf's jeweilige Lizenzmodell der verwendeten Software werfen, und gucken, ob das zu den eigenen Vorstellungen passt. Um's ausprobieren auf der Ziel-HW werdet ihr wohl nicht rumkommen, um die Eignung festzustellen. Gruss WK
Dergute W. schrieb: > Da wuerd' ich auch immer mal ein Auge auf's jeweilige Lizenzmodell der > verwendeten Software werfen Sollte bei der zlib kein Problem sein, das ist 'ne Art BSD-Lizenz.
Moin, Jörg W. schrieb: > Sollte bei der zlib kein Problem sein, das ist 'ne Art BSD-Lizenz. Ich sag' ja auch nicht, dass es ein Problem bei der zlib ist. Das im Ausgangspost erwaehnte gzip ist aber schon mal GPL. Wie z.b. LZO auch. Das muss auch kein Problem sein. Wenn man's rechtzeitig entsprechend beruecksichtigt. Laesst man's aber gepflegt unter den Tisch fallen, weil "ist ja Opensource", kann das Gesicht spaeter lang werden. Gruss WK
Dergute W. schrieb: > Das im Ausgangspost erwaehnte gzip ist aber schon mal GPL. Ich hatte das so verstanden, dass gzip den Algorithmus meint, nicht die Implementierung.
Danke für die vielen Antworten. Gibt's bei allen Verfahren eine Dekomprimierung zur Laufzeit. An sich haben wir mit der Dekomprimerungszeit nicht so das Problem. Datei wird wohl in einem Anwendungsfall über CAN zuerst an uns geschickt. Das dauert schon mal > 15 Minuten. Wenn das entpacken dann ein paar Minuten braucht geht das unter. Wenn das natürlich aber funktionieren würde, dass wir gleich einen empfangenen Block dekomprimieren und nur den entpacken Inhalt auf die SD Karte schreiben habe ich auch nichts dagegen. Zur Info, wir sprechen von ASCII Files die rund 5MB unverpackt haben .gz sind es rund 750kB.
Moin, Dave schrieb: > Wenn das natürlich aber funktionieren würde, > dass wir gleich einen empfangenen Block dekomprimieren und nur den > entpacken Inhalt auf die SD Karte schreiben habe ich auch nichts > dagegen. Wenn du "Bloecke" einzeln komprimierst, kannst du sie auch einzeln wieder dekomprimieren. Wenn du dir erhoffst, einen komprimierten Blob in mehreren Bloecken zu uebertragen und die dann einzeln wieder zu dekomprimieren, muss das nicht immer funktionieren, kann aber evtl. wenn eben der Komprimieralgorithmus "das weiss", dass du da auf der anderen Seite blockweise dekomprimieren willst. Gruss WK
Dave schrieb: > über CAN zuerst an uns geschickt Klingt wie Automotive. Die Leute merken einfach nicht, wie weit sich sich schon mit untauglchen Entscheidnugen in die Scheisse geritten haben, und machen immer weiter, immer tiefer rein. Man kann sicher sein, daß Tesla nicht so updated, damit ist es folgerichtig, daß die als Sieger hervorgehen werden.
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.