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.
Eine eigene Frage?
Dieser Thread ist über 6 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.