Moin moin, ich möchte für den STM32F4 C-Code compilieren (und natürlich auch debuggen). Dazu verwende ich den GCC von hier https://launchpad.net/gcc-arm-embedded unter 64 Bit Linux. Soweit läuft alles bestens, mein Code compiliert und lässt sich mit einem Segger J-Link hervorragend debuggen. Nun möchte ich aber noch eine String-Ausgabe per UART realisieren. Auf der Arbeit hatten wir IAR EWARM verwendet, dort konnte man einfach printf() benutzen, welches dann eine Funktion (write()) aufrief, die dann einzelne Bytes an den UART sandte. Ich will das hier mit diesem GCC auch so haben. Dazu aber ein paar Fragen: 1. wie muss ich das genau implementieren, damit am Schluss meine einzelnen Characters an den UART kommen? ich habe irgendwo gelesen, dass man ein paar Syscalls selber implementieren muss. Ich finde aber nirgends eine Liste, welche das genau sind. 2. Ich bin mir nicht ganz sicher, welche C-Library der oben angegebene Compiler verwendet. Ich vermute aber, es ist die Newlib. Diese hat eine printf() (und auch sprintf()) implementierung, welche malloc() benutzt. Ich möchte malloc() wenn möglich vermeiden. Kann ich dem Compiler eine andere C-Library unterjubeln, oder wie würde man dies am geschicktesten realisieren? 3. Ich habe Elm Chans FATFS auf meinem Target laufen. Kann man dieses unter Umständen über die Syscalls mit den normalen C-Aufrufen für Filehandling verheiraten? Vielen Dank für eure Tipps. Grüsse Tobias
Tobias Plüss schrieb: > ich habe irgendwo gelesen, dass > man ein paar Syscalls selber implementieren muss. Ich finde aber > nirgends eine Liste, welche das genau sind. Schau mal hier rein: Beitrag "Re: ARM - Probleme mit sprintf (Linkerfehler)" > _ssize_t _write(int fd, const void *buf, size_t count) > int _close(int fd) > int _fstat(int fd, struct stat *sb) > int _isatty(int fd) > off_t _lseek(int fd, off_t offset, int whence) > _ssize_t _read(int fd, void *buf, size_t count) > void _exit(int status) > int _kill(int pid, int signal) > int _getpid(void) > > Teilweise sind es natürlich nur stubs oder dummies. Gruesse
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.