Forum: Mikrocontroller und Digitale Elektronik undefined reference to 'GPIOPinWrite' in CCStudio mit Tiva C Launchpad


von Nicolas G. (Gast)


Angehängte Dateien:

Lesenswert?

Hi Leute,

ich habe vor kurzem mein Tiva™ C Series Connected Launchpad, auf dem der 
TM4C1294 verlötet ist, bekommen. Ich habe mir dann unter Ubuntu das Code 
Composer Studio 6.0.1.00040 installiert und wollte loslegen. Zuästzlich 
habe ich mir noch die tilib von TI heruntergeladen.
Also habe ich ein neues CCS-Projekt erstellt und eine Art Hello World 
geschrieben, dass eine LED blinken lassen soll. Das sieht dann so aus:
1
#include <stdio.h>
2
#include <stdbool.h>
3
#include <stdint.h>
4
#include <stdlib.h>
5
#include "driverlib/pin_map.h"
6
#include "inc/hw_memmap.h"
7
#include "driverlib/gpio.h"
8
9
/*
10
 * hello.c
11
 */
12
int main(void) {
13
  GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE, 0x03);
14
  GPIOPinWrite(GPIO_PORTN_BASE, 0x03, 0x0);
15
16
  while (true) {
17
    GPIOPinWrite(GPIO_PORTN_BASE, 0x03, 0x0);
18
    GPIOPinWrite(GPIO_PORTN_BASE, 0x03, 0x3);
19
  }
20
}
Da sind aktuell noch ein paar Includes mehr drin als ich bräuchte, aber 
das soll hier nicht weiter stören.
Jedenfalls habe ich dann den Ordner zur tilib zu den Includes 
hinzugefügt und dachte ich könnte direkt loslegen. Leider bekomme ich 
aber vermutlich vom Linker die Fehlermeldungen mit "undefined reference" 
zu den verschiedenen Befehlen aus der tilib. Das liegt wohl daran, dass 
er die passenden Object-Files dazu nicht findet. Nur habe ich keine 
Ahnung wie ich das machen muss. Muss ich dafür ein eigenes Makefile 
schreiben oder kann man das irgendwo im CCS einstellen? Oder liege ich 
womöglich mit der tilib schon ganz falsch? Ich möchte das ganze mit dem 
arm-none-eabi-gcc kompilieren. Den habe ich auch schon installiert in 
Ubuntu, habe aber später gemerkt, dass der sowieso schon mit CCS 
mitgeliefert wurde. Naja.

Ich würde mich jedenfalls über Ratschläge freuen.

Vielen Dank im Voraus!

von put lib to project (Gast)


Lesenswert?

Was hast du für eine Lib geladen? Von der Seite hier 
http://www.ti.com/tool/sw-tm4c ?

von Easylife (Gast)


Lesenswert?

Wie sieht denn dein Makefile aus. Du musst dem Linker natürlich 
mitteilen, dass er tilib linken soll.

von Nicolas G. (Gast)


Lesenswert?

put lib to project schrieb:
> Was hast du für eine Lib geladen? Von der Seite hier
> http://www.ti.com/tool/sw-tm4c ?
Ja, von dort habe ich die tilib herunter geladen.

Easylife schrieb:
> Wie sieht denn dein Makefile aus. Du musst dem Linker natürlich
> mitteilen, dass er tilib linken soll.
In meinem Screenshot oben siehst du, dass ich die tilib als Include 
hinzugefügt habe. Aber ich weiß eben nicht, ob das reicht, da zu diesen 
Header-Dateien im tilib-Verzeichnis auch noch c-Dateien gehören, die 
aber ja nicht kompiliert werden, wenn ich das richtig sehe. Also ich 
weiß nicht wirklich, wie ich das zu machen haben. :/

von Maxwell (Gast)


Lesenswert?

Am besten du lädst dir das tivaware Paket von ti.com runter und 
importierst das blinky Beispiel.
Da kannst du dir alles abschauen.

von Nicolas G. (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe mir jetzt diese GIT hier geklont: 
https://github.com/yuvadm/tiva-c
Danach habe ich die Anweisungen befolgt und das hier ausgeführt:
1
$ cd boards/ek-tm4c1294xl/blinky
2
$ make
3
$ lm4flash gcc/blinky.bin
Das ging auch ohne Probleme und jetzt blinkt die LED auf dem Board. 
Soweit schon mal wunderbar.
Dann habe ich das blinky-Verzeichnis in das CCS importiert. Und zwar so, 
dass es nicht in einen anderen Workspace kopiert wurde, sondern da 
bleibt wo es schon ist und auch das vorhanden Makefile benutzt wird. 
Dann kann ich auch aus dem CCS kompilieren, cleanen und von der Konsole 
aus mit lm4flash auf das Board flashen. Allerdings erkennt das CCS 
leider nicht alle Includes, die jetzt ja fest im Makefile stehen. Das 
heißt ich kriege an vielen Stellen rot unterstrichene Wörter angezeigt, 
obwohl das Kompilieren ja ohne Problem funktioniert. Das liegt jetzt 
wohl daran, dass der Indexer vom CCS die Includes nicht richtig bzw. gar 
nicht parst. Ich habe aber gerade keine Ahnung wie ich die jetzt 
hinzufüge. Im Anhang nochmal ein aktueller Screenshot. Hat da noch 
jemand eine Idee für mich?

von Nicolas G. (Gast)


Lesenswert?

Ich habe den tilib-Pfad an der falschen Stelle hinzugefügt. Jetzt geht 
es richtig. Vielleicht komme ich irgendwann auch noch dahinter wie ich 
ein Projekt neu im CCS anlegen kann anstatt ein vorhandenes zu kopieren 
und zu ändern. ;)

von holger (Gast)


Lesenswert?

>Hat da noch jemand eine Idee für mich?

Geh unten auf Problems und lösch alles was da drin steht.

von Nicolas G. (Gast)


Lesenswert?

Ja, danke. Sehr hilfreich... Nicht!

von Bernd N (Gast)


Lesenswert?


von Nicolas G. (Gast)


Lesenswert?

Bernd N schrieb:
> http://kampis-elektroecke.de/?page_id=2559
>
> Das sollte helfen.

Danke. Das werde ich mir heute Abend oder so mal anschauen. Ich hoffe da 
gibt es nicht allzu viele Unterschiede bei der Projekteinrichtung 
zwischen Windows und Ubuntu.

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.