Forum: Mikrocontroller und Digitale Elektronik Problem mit TI StellarisWare LaunchPad


von Jo (Gast)


Lesenswert?

Hallo,

nachdem das MSP430 Launchpad für mein µC-Debüt-Projekt, ein 
SDCard-Datenlogger zu klein wurde (Code und Ram, IOs), arbeite ich mich 
gerade durch die TI Tutorials zum Stellaris LaunchPad und scheitere an 
einer ganz einfachen Tasterabfrage (Code s.u.). ;(

Zum programmieren nutze ich CCS5.3 unter WinXP. Und erhalte folgende 
Fehlermeldung:
1
unresolved symbol ButtonsInit, first referenced in ./main.obj 
2
#10010 errors encountered during linking; "Lab2.out" not built  
3
unresolved symbols remain  
4
unresolved symbol ButtonsPoll, first referenced in ./main.obj

Wo liegt der Fehler? Fehlt eine Include Datei?


Anmerken möchte ich noch:
Als eher Anfänger, der aber schon mit dem MSP430 LaunchPad und den 
zahlreichen Codebeispielen es geschafft hat einen SD-Card-Logger  fast 
erfolgreich zum laufen zu bringen (Code und Ramgrenze erreicht), fehlen 
mir bisher die entsprechenden Code-Beispiele für das Stellaris LP (z.B. 
für SD-Card) oder finde ich die nur noch nicht?

Und ich empfinde die StellarisWare bisher noch eher als hinderlich. Z.B. 
die Delay-FCN, die noch nicht in us oder ms nutzbar ist oder die 
GPIO-FCNs bei denen ich zwar eine Bit-Maske setze, aber dann immernoch 
den entsprechenden richtigen 'Portwert' dahinterschreiben muss. Wenn 
schon vereinfachen, dann doch gerne so wie beim mBed. Nur finde ich 
lernt man(n) dort eben wengiger verstehen, was eigentlich dahinter 
steckt und passiert.

Vielen Dank für Hilfe und Antworten!
Jo
1
#include "inc/hw_types.h"
2
#include "inc/hw_memmap.h"
3
#include "driverlib/sysctl.h"
4
#include "driverlib/gpio.h"
5
#include "boards/ek-lm4f120xl/drivers/buttons.h"
6
7
#define LED_Blau_Ein GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2, GPIO_PIN_2);
8
#define LED_Blau_Aus GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2, 0);
9
10
int main(void)
11
{
12
  SysCtlClockSet(SYSCTL_SYSDIV_4|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN);
13
  ButtonsInit();
14
  SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
15
  GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3);
16
17
  unsigned char ucState;
18
  unsigned char ucDelta;
19
20
  while(1)
21
  {
22
    ucState = ButtonsPoll(&ucDelta, 0);
23
24
    if(BUTTON_PRESSED(LEFT_BUTTON, ucState, ucDelta))
25
    {
26
      LED_Blau_Ein;
27
    }
28
    else
29
    {
30
      LED_Blau_Aus;
31
    }
32
33
    SysCtlDelay(2000000);
34
35
  }//While
36
}//Main

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Du verwendest eine Funktion namens ButtonsInit.

In einer der von Dir eingebundenen Headerdateien ist auch der Prototyp 
(die Deklaration) der Funktion zu finden -- was aber nicht gefunden 
wird, ist die Implementierung (die Definition, der Code) der Funktion.

Du wirst das C-Source-File, in dem diese Funktion drinsteht, zur 
Projektverwaltung hinzufügen müssen, das Einbinden der Headerdatei macht 
das nicht.

von Helmut L. (helmi1)


Lesenswert?

Jo schrieb:
> unresolved symbol ButtonsInit, first referenced in ./main.obj

Damit meint er das eine LIB fehlt. Hast du auch die "driverlib-cm4f.lib" 
dazu gelinkt?

Die findet man in Stellarisware\driverlib\ccs-cm4f

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.