STM32 printf

OP #2417262
Lesenswert?
• ▲
▼
Hallo Forum!

Ich programmiere einen STM32F100 mit dem STM32VL-Discovery Board 
(http://www.st.com/internet/evalboard/product/250863.jsp) mit der IAR 
Workbench Kickstart 6.3 und probiere schon wie wild die printf-Funktion 
zum laufen zu bekommen. Man muss sie ja "redirecten", also gewisse 
Funktionen überschreiben um printf hardwarespezifisch anzupassen.

In der StandardPeripheralLibrary von ST ist ein Beispiel unter USART wie 
man dies bewerkstelligen könnte:
1
#include <stdio.h>
2

3
#ifdef __GNUC__
4
  /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
5
     set to 'Yes') calls __io_putchar() */
6
  #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
7
#else
8
  #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
9
#endif /* __GNUC__ */
10

11
// MAIN usw
12

13
PUTCHAR_PROTOTYPE
14
{
15
  /* Place your implementation of fputc here */
16
  /* e.g. write a character to the USART */
17
  USART_SendData(USART1, (uint8_t) ch);
18

19
  /* Loop until the end of transmission */
20
  while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
21
  {}
22

23
  return ch;
24
}

Nur mault der Compiler dass er den Datentyp FILE nicht kennt.
Ich bin davon ausgegangen dass dieser in stdio.h definiert wird, was 
aber bei mir nicht zu passieren scheint.

Die Funktion printf kann ich aber ohne Fehler aufrufen, nur wird eben 
nichts gesendet.

Ich vermute es liegt an bestimmten Linkereinstellungen oder soetwas in 
der Art.

Vielen Dank schonmal!

Mfg
Christoph

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.