C Anfänger Frage

Gast #172104
Lesenswert?

Hallo zusammen,

fange gerade mit C für 8051 controller an und verwende den SDCC. Ich
habe versucht das Hello World Programm aus den C Beispielen von Keil zu
compilieren und erhalte eine Fehlermeldung.

Hat jemand ein Hello World beispiel für den SDCC das funktioniert ?

Gruß

Joe
Gast #172108
Lesenswert?

Hier das Programm

#include <AT89S8252.H>
#include <stdio.h>

void main (void) {

/*------------------------------------------------
Setup the serial port for 1200 baud at 16MHz.
------------------------------------------------*/

SCON  = 0x50;
TMOD  = 0x20;
TH1   = 221;
TR1   = 1;
TI    = 1;

  while (1) {
    printf ("Hello World\n");   /* Print "Hello World" */
  }
}


Fehlermeldung bei SDCC:
ASLINK undefined Global _putchar referenced by module vprint ....
Gast #172110
Lesenswert?

Also, vielleicht nocheinmal der Hinweis Anfänger!

Vermutung: Hört sich an wie put character, meint Zeichen zur
Schnittstelle 'putten' ?

Gehört diese Funktion beim SDCC nicht zur stdio LIB ?`

Joe
Gast #172111
Lesenswert?

Printf weiß nicht, ob du die Daten über die serielle Schnittstelle
ausgeben, auf einem LCD darstellen, ... willst.

Deshalb solltest du diese Basisroutine (put character) selbst
implementieren und printf verwendet sie dann.
Gast #172112
Lesenswert?

Wenn ich C programmieren könnte würde ich das machen. Wie auch immer,
beim Keil Compiler ist sie dabei. Compiliere ich Sie mit SDCC
funktioniert es, baue ich diese Routine mit der ersten zusammen so
ernte ich jede menge neue Fehler (ich weiss, Glaskugel...)

Hast du vielleicht ein funktionierendes komplettes Beispiel, das würde
die Sache erheblich verkürzen.

Vielen Dank im vorraus

Joe
Gast #172114
Lesenswert?

Das sollte in der Dokumentation des SDCC bzw. dazugehörigen Tutorials
beschrieben sein.

Was sagt denn folgender Kommandozeilenbefehl

  findstr /s /c:"putchar" *.c

aufgerufen im Installationsverzeichnis von SDCC?

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