Forum: Mikrocontroller und Digitale Elektronik openLPC kompiliert nicht auf Bare Metal


von NFox (Gast)


Lesenswert?

Servus,

Beim Aufbau einer Toolchain mit openLPC, bin ich auf folgende 
Problemantik gestoßen: Wenn ich im Makefile einstelle, daß er mir nur 
ein .hex File generieren soll, sprich: Bare Metal, bricht er stets den 
Linkvorgang mit der typischen "undefined referende to" Fehlermeldung ab. 
Woran könnte das liegen? Ich nutze im Übrigen kein openGL Board, sondern 
eine Eigenentwicklung, daher brauche ich auch nur ein .hex File.

von Oliver J. (skriptkiddy)


Lesenswert?

NFox schrieb:
> "undefined referende to"
Wow den eigentlich wichtigen teil der Fehlermeldung unterschlägst du. 
Poste bitte mal den Rest auch noch.

Wenn der Linker eine solche Fehlermeldung wirft, dann fehlt ihm ein 
Symbol zum binden. Könnte eine Funktion eine Variable oder ähnliches 
sein.

Gruß Oliver

von NFox (Gast)


Angehängte Dateien:

Lesenswert?

Huch, entschuldigung. Die Bildschirmfotos habe ich tatsächlich 
vergessen, liegen jetzt aber im Anhang. Übrigens eine grandiose Leistung 
des Makefiles ist es die Option auf "bare" umzuschalten einmal im 
makefile und einmal ganz unten in der Datei zu liefern, in der man 
persönliche Sondereinstellungen machen kann. Und ich habe mich 
gewundert, warum die if-Abfrage nicht hingehauen hat ...

von NFox (Gast)


Lesenswert?

Also ich hab gerade mal rumexperimentiert und die librarys durchsucht. 
Fologendes trat zutage: Das Problem liegt daran, daß der Library die zum 
Übersetzen von bare metal Anwendungen genutzt wird, zwei Objekte fehlen. 
Das Erste sind die Systemcalls, das Zweite ist ein Objekt das in der LPC 
Library nur als "stub.o" bekannt ist. Füge ich Beide dem Linkvorgang 
hinzu, erhalte ich eine funktionsfähige .HEX. Nun ist die Frage: Ich 
weiß, daß ich eine eigene Syscalls.c definieren muß, kein Thema, geht, 
aber was ist die "stub.o" und wie sicher wäre es, wenn ich diese Lösung, 
also das ich die Syscalls auf der andren Library hole, weiterhin nutze?

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
Noch kein Account? Hier anmelden.