Gast
#2307913
Hallo, ich habe hier ein kleines selbst entworfenes ARM9-Board. Dieses verfügt über eine serielle RS-232 Verbindung zum PC, und ich möchte da einer Art Konsole entwerfen, um z.B. für Debug-Zwecke bestimmte Funktionen zu starten usw. Da ich ein RTOS einsetze, wird zwar vieles einfacher zum Programmieren, anderes ist dafür ein Krampf... Ich möchte gerne eine Ausgabe von Debug-Meldungen realisieren über die RS-232. Dabei soll jedoch derjenige Task, welcher eine Meldung ausgibt, so wenig wie nur irgend möglich gebremst werden, z.B. durch ein kompliziertes printf. Denn die Tasks führen z.T. Datenübertragungsprotokolle aus oder sollen Messwerte möglichst in Echtzeit verarbeiten. Wenn da ein Task eine Meldung ausgeben soll wie "Messwert 34: 3.25V", und dazu printf braucht, dann wird der Task erstens mal unnötig lange von diesem printf gebremst (das kann ja leider nur Zeichen für Zeichen verarbeiten) und dann wird auch noch ein unnötiger Buffer erstellt, wo der zu sendende String erst zwischengespeichert wird, bevor man damit auf den UART los kann. Mir will das nicht so recht gefallen; gibt es keine elegantere Lösung? Wie kann ich auf einfache Weise eine möglichst schnelle, einigermassen Speicher sparende Ausgabe formatierter Daten über UART ermöglichen, die RTOS tauglich ist?