000
29.01.2007, 15:15 Uhr
Pablo
Supertux (Operator)
|
Hi
ich brauche mal wieder eure Hilfe. Dieser Thread ist eher für unsere Rätselecke reif
Ich schreib zur Zeit (Studienarbeit) einen Kernel für einen PXA Prozessor und ich bin gerade dabei, einen Treiber für die serielle Schnittstelle zu schreiben.
Eine Einfache Funktion, die nur Zeichen ausgibt, habe ich schon implementiert und getestet, es läuft einwandfrei.
Da ich die serielle Schnittstelle für die Ausgabe (vor allem Debugging) benutzen werden, wollte ich mir eine Funktion wie printf schreiben, d.h. ich hab mir meine eigene va_list Macros zusammengebaut, was ja nicht schwer ist.
Meine Funktion heißt kprint und das Format %d für dezimal, %x für hexadezimal, %o octal und %b binär. %x,%o,%b ist kein Problem zu schreiben, was mich ein bisschen Ärger bereitet, ist das %d Format: mir fällt kein gescheites Verfahren, um eine Dezimal Zahl auszugeben (ich kann printf & co nicht benutzen) und ich will keine naives Verfahren einsetzen.
Ich brauche eine Funktion
C++: |
char *print_int(int x) { static char str[1000]; /* zur Vereinfachung */
/* gescheites Verfahren */
return str; }
|
die eine Zeichendarstellung von x erzeugt.
Das größte Problem ist, dass ich nicht auf die glibc zugreifen kann, sprich kein pow, log, sqrt, usw wer hilft mir, etwas performantes zu schreiben? -- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth! |