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
Es gibt hunderte 8051 Controller. Was verstehst du unter Hello World? - das Blinken einer LED - die Ausgabe eines String per USART oder auf einem LCD - ... Gib dir mal ein wenig Mühe!
"...und erhalte eine Fehlermeldung." Schön für Dich. Hast Du sie gelesen ? Sorry, aber meine telephatischen Fähigkeiten sind begrenzt. Peter
Sorry, hast ja recht, der compiler meckert über eine Funktion putchar welche offenbar von printf benötigt wird. Genaue Fehlermeldung reiche ich nach. Joe
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 ....
Nun geh einmal einen Schritt weiter und hinterfrage diese Fehlermeldung ... Was will dir dein Compiler sagen? Warum benötigt er die Funktion _putchar?
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
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.
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
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?
bin fündig geworden, oder nicht, ein Beispiel ist in SDCC nicht enthalten (sagt die Doku). Also, letzter Versuch, hat jemand ein funktionierendes Beispiel für den SDCC ???? Gruß Joe
Google mal nach "sdcc" und "putchar"... http://chaokhun.kmitl.ac.th/~kswichit/easy1/easy1_3.html http://sdccokr.dl9sec.de/resources.htm
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.