Hallo, mal eine dumme Frage, wie nutzt man innerhalb der STM32 HAL Bibliotheken die bereits eingebauten Debugfunktionen? Da sind jede Menge Anweisungen vorhanden, aber die dort genutzten printf müssten ja auf meine Uart umgemünzt werden. Wie macht man so etwas?
Schau dir mal die syscall.c an. Darüber kannst du den Schreibzugriff des printf auf deinen UART umbiegen.
Bib-Debug schrieb: > aber da sehe ich nix was nach printf aussieht Dann such mal was, was nach putc() aussieht. Letztendlich ruft printf auch nichts anderes auf.
Ist das nicht eher _write() oder _write_r()? (Ich kenne HAL nicht, nehme aber an, dass sie auch die newlib benutzen.)
Ich weiss nicht, ob Du das meinst: Zuerst normal mit den HAL_ Kommandos eine UART/USART Schnittstelle initialiserien. Details dazu siehe HAL Dann im main.c:
1 | #ifdef GNUC
|
2 | /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf set to ‘Yes’) calls __io_putchar() */
|
3 | #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
|
4 | #else
|
5 | #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
|
6 | #endif /* GNUC */ |
7 | |
8 | PUTCHAR_PROTOTYPE { |
9 | HAL_UART_Transmit (&huart3, (uint8_t *)&ch, 1, 0xFFFF); |
10 | return ch; |
11 | }
|
Von da an schreibt ein normaler printf() auf die besagte Schnittstelle. Daniel
Jörg W. schrieb: > Ist das nicht eher _write() oder _write_r()? Du hast Recht. _write_r(). Mein Fehler.
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.