Aufhängen bei printf ohne IDE

Gast #5563316
Lesenswert?

Hallo,

ich nutze die Funktion printf() in meinem STM32F0-Projekt in IAR, um mir 
im Terminal I/O-Fenster Debug-Ausgaben anzeigen zu lassen.
Lasse ich den Code in der IDE (im Debug-Modus) laufen, funktioniert 
alles.

Schließe ich IAR und resette den Controller, damit er von selbst 
anläuft, bleibt der µC bei der ersten printf() hängen (ermittelt per 
LEDs, alles vor der printf läuft).

Weiß einer woran es liegen kann? Wartet printf auf ein ACK?
Gast #5563327
Lesenswert?

pc schrieb:
> Weiß einer woran es liegen kann? Wartet printf auf ein ACK?

printf gibt die Daten nur an eine darunterliegende "write" Funktion 
weiter. Was die macht, hängt vom Betriebssystem und der C-Library ab. 
Also, wie verarbeitet dein OS/libc die Daten? Schickt es sie per UART? 
USB? SWO? ...? Wartet es auf ein ACK?
Gast #5563358
Lesenswert?

Christopher J. schrieb:
> Ich würde eher auf Semihosting tippen, weil das bekanntlich zu Problemen
> führt, wenn denn kein Debugger angeschlossen ist

Genau, in IAR ist es Semihosting.

Dr. Sommer schrieb:
> Du weißt also nicht genau was du da für eine Umleitung eingebaut hast?
> Weißt du wenigstens wie du die Texte am PC abrufst oder erscheinen die
> irgendwie auf dem Bildschirm?

Ich habe Semihosting in IAR aktiviert.

Man könnte jetzt natürlich alle printf rausschmeißen, aber die Datei ist 
eine API von einem Hersteller. Leider ohne irgendwelche 
Präprozessor-ifs, um die print-Ausgabe nicht mitzukompillieren. Bei 
einer neuen Version müsste man das Ganze ja wieder machen..

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