Hey guys! Ich plane eine Projekt auf einem STM32 µC bei dem Daten von der serielle Schnittstelle des µC gelesen werden und ein Teil der Daten auf einer SD Karte gespeichert werden. Zu Begin jeder Sekunde kommt ein Datensatz der um die 1000 Bytes enthält über die serielle Schnittstelle herein. Geplant ist die Daten zunächst in einen Ringbuffer zu schreiben die dann in einem eigenen Task auf die SD Karte geschrieben werden. Da diese Daten nach einem Protokoll muss die relevante Information geparst werden. Nun gibt es im groben 2 Varianten das zu realisieren. Variante 1 "Live": Die Daten Byte weise parsen/abarbeiten. oder Variante 2 "Datensatz" Einen kompletten Datensatz einlesen und dann auf einmal parsen. Ist Variante "Datensatz" auf einem STM32 Speicher mäßig überhaupt realisierbar ist? Welche Variante setzt man eher ein? lg
Ich wuerd sofort parsen und wenn ein Sektor voll ist schreiben. Klar geht das mit einem Controller, das macht sogar ein AVR.
Naja wenn du es nicht schaffst in 32 Sekunden 32KByte auf die SD- Karte zu schreiben, dann nicht. Oder in 1 Sekunde 1KByte. Versteh die Frage nicht !
Danke für die raschen Antworten. Jee schrieb: > Ich wuerd sofort parsen und wenn ein Sektor voll ist schreiben. Klar > geht das mit einem Controller, das macht sogar ein AVR. Okay - was meinst du genau mit einem Sektor? Uwe schrieb: > Naja wenn du es nicht schaffst in 32 Sekunden 32KByte auf die SD- Karte > zu schreiben, dann nicht. Oder in 1 Sekunde 1KByte. Versteh die Frage > nicht ! Ist einleuchtend, meine Gedanken beschäftigen sich noch nur mit dem Auslesen. Ich habe ein Framework (eine PC Lösung), das einen Datensätze auf einmal parsen kann. Das heißt ich muss immer wieder 1KByte buffern und kann erst dann das Framework einsetzen - kann es hier zu Engpässen kommen? Allerdings ist die Lösung sofort zu parsen irgendwie schöner, da dynamischer. Dabei muss ich aber die Implementierung des Protokolls selbst übernehmen. Deswegen wollte ich mal Meinungen/Erfahrungen hören, wie die Community solche Entscheidungen/Probleme löst. lg
Manu P. schrieb: > Das heißt ich muss immer wieder 1KByte buffern und kann erst dann das > Framework einsetzen - kann es hier zu Engpässen kommen? Wieviele Speicher hast du denn auf dem STM? Und wieviel ist davon schon in Benutzung. Es bringt ja auch nichts, wenn du um jeden Preis Speicher sparst und komplexe Lösungen erfindest, wenn dann sowieso 90% vom SRAM brach liegt. > Deswegen wollte ich mal Meinungen/Erfahrungen hören, wie die Community > solche Entscheidungen/Probleme löst. Kommt drauf an. Wenn man Parsen vom Protokoll trennen kann und dafür getrennte Schichten hat, dann sind Protokoll-Probleme meist leichter zu lösen. Denn entweder ein Datenframe ist komplett und fehlerfrei oder er ist es nicht, in welchem Fall er dann gleich gar nicht zum Parser kommt. Muss man aber bei Protokollproblemen den Parser erst mal wieder in einen sicheren Startzustand zurückmanövrieren, dann kann (muss nicht) das ausarten. Hängt natürlich aber auch vom Protokoll bzw. des zu parsenden Inhalts ab. Mit einer Statemachine kann man da des öfteren wahre Standing-Ovations provozieren.
:
Bearbeitet durch User
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.