tinyXML2 auf Microcontroller mit embOS und emfile

Gast #5485680
Lesenswert?

Hallo zusammen!

Hat jemand schon mal tinyXML2 auf ein nicht Windows/Linux System 
portiert?
Auf dem Targetsystem läuft embOS und emfile von Segger.
Ich "sehe" hier keine saubere Portierungsschicht. Alles im Code manuell 
zu ändern ist nicht nur sehr aufwändig, sondern verwehrt einem auch die 
Möglichkeit ein Update durchzuführen ...

Bei mir geht es um essentielle Funktionen zur dynamischen 
Speicherallokierung und Verwendung, sowie auch dem Filesystemzugriff.

Oder übersehe ich hier was?

Danke & Grüße
Jochen
Gast #5485693
Lesenswert?

Das Ding nutzt C++. Auf Microcontrollern kann man das problemlos nutzen 
- aber Menge gilt es dabei zu beachten (viele  "schöne" C++ Befehle 
setzen auf gruselige Allokatoren oder fressen eine Menge Flash weg).

Wuerde mir einen anderen Stack suchen.
#5485730
Lesenswert?

https://github.com/leethomason/tinyxml2 sagt:
> It does not rely on exceptions, RTTI, or the STL.

Das sind schonmal gute Vorraussetzungen für einen erfolgreichen Port.

Ich finde die Schnittstelle jetzt nicht so schwer zu verstehen. Im 
einfachsten Fall übergibst du einen Text und lässt den parsen:
https://github.com/leethomason/tinyxml2/blob/master/xmltest.cpp#L145

Wenn du es direkt aus einer Datei parsen willst, dann würde ich mal 
einen Blick auf die Methoden
1
 XMLError LoadFile( FILE* );
2

3
// und/oder
4

5
 XMLError LoadFile( const char* filename );

werfen. Die musst du natürlich entsprechend anpassen. Generell finde ich 
XML (nicht nur auf uC) nicht so prickelnd. "XML combines the readability 
of binary with the efficiency of text data" ist leider viel zu wahr. bei 
JSON gibt es einige Parser, die nicht nur rasend schnell, sondern auch 
sehr kompakt sind und denen einer Verwendung in kleinsten 
Embedded-Systemen absolut nichts im Weg steht, z.B. cJSON: 
https://github.com/DaveGamble/cJSON
Gast #5488033
Lesenswert?

Hallo!

Danke für die Antworten!
Die Frage ist, ob es ein besseres Dateiformat oder Parser gibt.
Ich sehe hier nur keine saubere Portierungsschicht, um tinyXML2 auf mein 
Target zu bringen. Die Frage ist daher, ob das jemand schon gemacht hat 
und wie "wartbar" das Ganze zum Schluss ist.

Danke & Grüße
Jochen
#5488049
Lesenswert?

Jochen schrieb:
> Hallo!
>
> Danke für die Antworten!
> Die Frage ist, ob es ein besseres Dateiformat oder Parser gibt.
> Ich sehe hier nur keine saubere Portierungsschicht, um tinyXML2 auf mein
> Target zu bringen. Die Frage ist daher, ob das jemand schon gemacht hat
> und wie "wartbar" das Ganze zum Schluss ist.
>
> Danke & Grüße
> Jochen

BSON oder MessagePack sind deutlich bessere Kandidaten für kleine 
Prozessoren mit wenig Speicher.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren