Forum: Mikrocontroller und Digitale Elektronik Linker-Probleme mit TM4C123G


von crumbjunk (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe nun schon seit mehreren Tagen folgendes Problem:

Ich arbeite mich z.Z. in den TM4C123H6PM (mit CCS) ein und benutze dazu 
den offizielen Workshop von TI.

In Kapitel 3 gibt es eine Homework, in der man die LEDs mit den switches 
an- bzw. ausschalten soll. Dazu sollten die API-Funktionen aus der 
library der TIVAWARE benutzt werden. Wie im Screenshot zu erkennen, 
lassen sich alle Funktionen aus dem Verzeichnis "driverlib" (ebenfalls 
aus TIVAWARE) einbinden und benutzen.
Die Funktionen aus der "button.h" (auch aus TIVAWARE) werden, ich glaube 
vom Linker, nicht gefunden...
Die Properties/Preferences des Projektes sollten richtig sein, da diese 
von dem Workshop übernommen wurden. Ich habe inzwischen (nun bei Kapitel 
7 angekommen) in jedem Projekt versucht, die Funktion ButtonInit() 
aufzurufen, nie wird sie erkannt...

Ich wäre sehr dankbar, wenn mir jemand helfen könnte.

Grüße

von crumbjunk (Gast)


Lesenswert?

Anhang:
Das Programm aus dem Screenshot ist NICHT das Blinkprogramm! Ich will 
mit diesem Programm nur demonstrieren, dass auch andere Header-Dateien 
(hier z.B. "ustdlib.h" eingebunden werden können und diese 
funktionieren.
Nur eben die "button.h" nicht... Warum?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Du wirst herausfinden müssen, in welcher Library die vom Linker 
bemängelten Symbole definiert sind.

Durch das Einbinden einer Headerdatei wird keine Library gelinkt; Du 
wirst die zugehörige Library zu den Linkeroptionen Deines Projektes 
hinzufügen müssen.

Das machst Du ja auch schon mit "driverlib.lib", aber da ist wohl die 
Funktion nicht enthalten.

Sieh doch mal mit dem Explorer nach, was da noch für *.lib-Dateien an 
dem Ort vorhanden sind, wo "driverlib.lib" zu finden ist. Vielleicht 
verraten deren Namen ja etwas.

Oder sieh in die zugehörige Headerdatei; vielleicht steht da ja ein 
Kommentar drin, welche Library die deklarierten Funktionen enthält.

von crumbjunk (Gast)


Lesenswert?

Hi Rufus,

danke für deine Hilfe. Es funktioniert nun endlich.
Leider war ich ziemlich auf dem Holzweg. Dank Rufus habe ich das 
Verzeichnis verzweifelt nach der *.lib durchsucht. Habe auch einige 
gefunden, aber keine für die gewünschten Funktionen...

Für alle die sich so anstellen wie ich:

Es sind nur Beispiele im Ordner examples!!! Jaa... wer lesen kann ist 
klar im Vorteil...   => keine *.lib!
Also einfach die gewünschten Header und Codes in das Projekt kopieren. 
Ggf. "ROM_" vor den Funktionsaufrufen (je nach Konfiguration) entfernen 
und glücklich sein ;)

Danke nochmal für den Denkanstoß mit der *.lib, dass hat mich auf die 
richtige Spur gebracht.

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.