[WinARM] printf-Problem

Gast #364780
Lesenswert?
• ▲
▼
Hallo,

ich versuche gerade printf dazu zu bringen Text auf meinem LCD
auszugeben. Dazu hab ich syscalls.c eingebunden und folgendes gemacht:

1. Einen Funktionspointer deklariert, weil ich es nicht hingekriegt
habe das syscalls.c die Referenzen auf meine putc-Funktion findet, die
sich in einem C++-Kompilierten Objekt befindet.
1
void (*LCD_PUTC) (char c);

2. _write_r von syscalls.c entsprechend angepasst
1
_ssize_t _write_r (
2
    struct _reent *r, 
3
    int file, 
4
    const void *ptr, 
5
    size_t len)
6
{
7
  int i;
8
  const unsigned char *p;
9
  
10
  p = (const unsigned char*) ptr;
11
  
12
  for (i = 0; i < len; i++) {
13
    LCD_PUTC(*p++);
14
  }
15
  
16
  return len;
17
}

3. Den Funktionspointer in meiner main.cpp initialisiert
1
extern void (*LCD_PUTC) (char c);
2

3
void Init()
4
{
5
  LCD_PUTC  = LCD_putc;
6
}

4. LCD_putc sieht so aus:
1
void LCD_putc(char c)
2
{
3
  myLCD.PutC(c);
4
}

Aber LCD_putc wird anscheinend nie aufgerufen. (myLCD ist korrekt
initialisisert)

Ich tippe ja darauf, dass _write_r schon nicht aufgerufen wird. Ich hab
das aus dem HelloWorld Example übernommen, in dem mit iprintf() etwas
über die RS232 ausgegeben und eingelesen werden kann. Das verwendet die
gleichen Funktionen.

Weiß da jemand Rat?

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.