Hallo Zusammen, ich habe eine Anwendung bei der ich versuche einen Assemblercode in einen C-Code ein zu binden, aber irgendwie habe ich meine Schwierigkeiten damit!! Kann mir vielleicht mal jemand relativ schnell erklären, wie dies funktioniert?? Danke schon mal!! Gruß Benjamin
Kannst du uns mal deinen Stand und deine Schwierigkeiten erläutern?
Also ich habe mir den Code von dem Cristian Kranz aus der Codesammlung, zur Ansteuerung des Siemens S65 Displays herunter geladen. In der Software wird auf ASM code zugegriffen. Aber ich bekomme Fehlermeldungen!! ich habe mal einen Screenshot gemacht. Vielleicht kann mir ja jemand weiterhelfen!? Gruß Benjamin
Der Protoyp fuer die Funktion lcd_init() wurde vom Compiler nicht gesehen. Das kann mehrere Ursachen haben. Mach mal die includes so: #include "eigene\disp.h" #include "eigene\lcd.h" < wird bei includes verwendet um anzuzeigen, dass die gesuchte Header-Datei irgendwo im compiler-systemspezifischen Teil zu suchen ist " wird bei includes verwendet um anzuzeigen, dass es sich um eine benutzerdefinierte Header-Datei handelt. Wenn's dann noch immer nocht geht, dann ueberpreuf mal, ob die Header-Dateie tatsaechlich dort liegen wo sie sollen. Alternativ kannst Du auch den vollstaendigen Pfad zu den Include dateien angeben (ist aber nicht so gut, sowas sollte man nur zu Testzwecken machen). Und nein: Das ganze hat ueberhaupt nichts mit Assembler zu tun. Da geht es rein um Dateien, auf welchen Pfaden sie liegen, ob die Pfadeinstellungen des Compilers richtig sind und wie man den AUfsuchpfad der Dateien im C-Source Code spezifiziert.
undefined reference bedeutet einfach nur, dass der Compiler ein 'Wort' im Quelltext entdeckt hat, dass syntaktisch eine Variable oder ein Funktionsaufruf sein kann, aber weder eine Variable noch eine Funktion dieses Namens wurde definiert. Also ein Name, auf den sich der Compiler keinen Reim machen kann.
Mist, Heut ist nicht mein Tag: Wer da meckert ist nicht der Compiler, sondern der Linker. Ich vermute mal, dass zur lcd.h auch eine lcd.c gehoert. Nimm sie mit in das Projekt auf und alles ist gut.
Nein, undefined reference heißt, dass der Linker das nicht gefunden hat. Offenbar wird also die entsprechende Objektdatei mit der Definition der genannten Funktion gar nicht erst gelinkt.
Fehlanzeige, da gibt es kein lcd.c Allerdings gibt es ein lcd.asm Du musst die Datei umbenennen in lcd.s in dann ganz einfach als neues Source File in das Projekt mit aufnehmen. Habs grade probiert: Funktioniert
Danke für eure netten Tipps. Die Datei um zu benennen hat den Erfolg gebracht. Aber jetzt hängt sich der Simulator beim Aufruf der Routine lcd_init(); auf. Ich verstehe das aber nicht. Denn irgendwie sagt der Compiler doch das alles stimmt und der ASM läuft doch auch bei anderen!? Wenn jemand das selbe Problem hat, bitte melden. Vielleicht gibt es ja auch schon eine Lösung!! Gruß
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.