Vielen Dank, dass Sie eine neue Version des Yagarto-C-Programierpakets für die Firmware 1.24 veröffentlicht haben. Erfreut habe ich festgestellt, dass auch die mathematische Library libm eingebunden ist und nun die Verwendung von floating point Variablen möglich ist, Klasse!
Auch ohne FPU ist die Verarbeitungsgeschwindigkeit von floats brauchbar: Die Berechnung eine Logarithmus benötigt weniger als 20µs, Grundrechenarten sind Faktoren schneller.
Bei Integer-Arithmetik ist der RoboTX in Knaller! Eine binäre Suche nach einer Zahl in einem Array mit 10000 Einträgen ist in weniger als 5µs erledigt. In RoboPro würde eine solche Suche etwa 40ms benötigen (3 Verzweigungen a 1ms * log2(10000)~13 Schleifendurchläufe). => Hierbei wäre RoboPro um einen Faktor >1000 langsamer als die C-Implementation.
Mehr als hilfreich ist die kleine Auswahl an C-Library-Funktionen, die als Function Pointer über die Hook Table der Transfer Area zur Verfügung gestellt werden. Das ist allerdings kein Ersatz für eine komplette C-Lib bzw. die mit der Yagarto Toolchain gelieferte newlib libc, zumal die sprintf-Funktion der Ft/4NetOS-Firmware unvollständig ist: Eine Ausgabe von Floats ist hiermit nicht möglich.
Spaßeshalber habe ich mal direkt die sprintf-Funktion der newlib-libc probiert. Dazu musste ich lediglich den include path erweitern und einen der in "C-Compiler-RoboTXC-V1-1-24-Jan-2012.zip\C_Compiler_RoboTXC\ftMscCComp_V4.4.1.zip\Demo_C\Bin\GNU\YAGARTO\yagarto_newlib.txt" erwähnten Function-Stubs implementieren. Die Implementation taugt allerdings nur für einfache Tests.
=> Die sprintf-Funtion der newlib stellt floats korrekt dar, und ist nur etwa 25% langsamer als die Ft-Version.
Es wäre klasse wenn Sie auch die newLib-libC einbinden könnten. Ist das möglich?
Zumindest nach Aussage der newlib-Dokumentation soll das nicht sehr aufwendig sein.
Eine Funktion wäre dabei besonders wichtig: fprintf logging über USB/BT auf ein serielles Terminal auf dem PC. Das ersetzt zwar keinen echten Debugger, wäre aber sehr hilfreich um komplexere Programme zum Laufen zu bringen. Die kurzen Popup-Logs auf dem TX-Display taugen da nicht viel.
Vor längerer Zeit hatte ich mal das Thema weitergehender Dokumentation angesprochen:
Gibt es diesbezüglich evtl. Neuigkeiten?hamlet hat geschrieben:Besteht evtl. die Möglichkeit, dass die fischertechnik GmbH bzw. seine Partner ihren Kunden Dokumentation des RoboTX Controllers und/oder ein API+Doku des 4NetOS zur Verfügung stellen? [...]Janosch Kuffner hat geschrieben:Diese Anregung wurde an die entsprechende Stelle weitergeleitet. Momentan können wir aber keine Aussage dazu treffen ob bzw. wann eine entsprechende Veröffentlicheung möglich ist.
Beste Grüße,
Helmut