Trubbel med Tiva C / CCS

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
brevbärar-orre
Inlägg: 22
Blev medlem: 21 december 2011, 17:24:33

Trubbel med Tiva C / CCS

Inlägg av brevbärar-orre »

Tjena!

Jag är i full fart med att få min Tiva C TM4123G launchpad att agera som en USB-device (bulk), men jag har sprungit på ett problem:
Min kod vill inte kompilera då jag får felkoden "unresolved symbol USBDBulkInit, first referenced in ./main.obj", där funktionen USBDBulkInit finns i usbdbulk.h, vilken jag har inkluderat i min main.c (och source-fil).

Jag har läst på TI:s egna forum, jämfört med exempelkod och letat igenom allehanda datablad och instruktionsguider, men kan ändå inte lösa det..

Jag misstänker att jag har missat att inkludera nån mapp i properties, men kan inte hitta vad felet är.
Koden är rätt stor, men syftet är att skicka data från flash-minnet via USB till datorn (MATLAB).

Någon som haft liknande problem som kan ge en hjälpande hand?

tack på förhand, Brevbärar-orre
Mr Andersson
Inlägg: 1409
Blev medlem: 29 januari 2011, 21:06:30
Ort: Lapplandet

Re: Trubbel med Tiva C / CCS

Inlägg av Mr Andersson »

Unresolved symbol är tekniskt sett ett länkningsfel och inte ett kompileringsfel ;) Länkaren hittar inte objektsfilen eller biblioteket som innehåller USBDBulkInit-funktionen.
Jag använder inte TIs prylar så jag kan inte ge dig något exakt svar, men det verkar som att du måste inkludera usbdbulk.c i ditt projekt också.
brevbärar-orre
Inlägg: 22
Blev medlem: 21 december 2011, 17:24:33

Re: Trubbel med Tiva C / CCS

Inlägg av brevbärar-orre »

Det var det jag misstänkte, det kluriga är hur man på rätt sätt lägger till sökvägen till usbdbulk.h så att länkaren hittar den.
Att inkludera usbdbulk.c fungerade inte, det gör som inte i exempelkoden heller..

Jag har även inkluderat driverlib.lib enligt workshop-filen, men jag börjar misstänka att den inte innehåller usbdbulk.h, men jag kan inte förstå hur man säger till CCS att leta där..
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Trubbel med Tiva C / CCS

Inlägg av sodjan »

En gång till... :-)
Det är inget *kompileringsfel*, t.ex som att en .h fil inte hittas.
Där är när länkaran senare ska pussla ihop det hela som det går fel.

Om den inte hitar .h filen (och jag utgår från att du har en korrekt
#include i koden) så får du helt andra fel, "file not found" eller liknande.

Kompilatorn lägger in referenser i din objektfil till det som senare
ska länkas in, och om länkaren inte hittar det önskade så får
man "unresolved symbol" från *länkaren*.

Du behöver lägga till en sökväg för "libraries" eller "object files" eller
vad det kallas i just den där miljön. Antaglingen ingår inte det du
försöker använda i standard libarna som alltid inkluderas.

Sök i dokumentationen efter "libraries", "library", "path" eller liknande
så borde du hitta det.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Trubbel med Tiva C / CCS

Inlägg av sodjan »

En fråga...
Har du lagt till .c filer från kittet som behövs enligt dokumentationen?
Funktionen USBDBulkInit() finns i filen usbdbulk.c "USB bulk device class driver".

Du får lägga till övriga filder som behövs för esp interface, t.ex för "bulk"
även usbdenum.c och usb.c (usbdenum.c är felstavat på bilden):
Skärmklipp.JPG
Notera, jag vet inte ett smack om det här egentligen, det är bara det
som Google pekade till vid en snabb sökning på "USBDBulkInit"...
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
brevbärar-orre
Inlägg: 22
Blev medlem: 21 december 2011, 17:24:33

Re: Trubbel med Tiva C / CCS

Inlägg av brevbärar-orre »

Hej igen! Tack för alla svar, jag var inte riktigt med på vad länkaren hade för del i processen, men nu förstår jag!

Nu fungerar det, en god natts sömn och bra svar hjälpte (löste det på 30 sek när jag insåg vad problemet var!)

Det var precis det som var problemet, jag hade inte lagt till .lib-filen ARM-Linker/File search path!
Enligt exempelkoden och instruktionen från TI ska inte USBDBulk.c behövas läggas till.

TI har utvecklat deras USB-device i 4 olika steg, alltifrån riktig låg-nivå initiering till några rader kod, jag valde det lite mer simpla, där man inte behöver bry sig om enumeration.
Så i princip sköter funktionerna allt till höger om "Bulk Class" i bilden sodjan bifogade, vilket kan vara trevligt om man har bråttom :)

Så för att summera, om det är någon mer som har trubbel med detta, välj properties/ARM-Linker/File search path och lägg till filen "...\TivaWare_C_Series-1.1\usblib\ccs\Debug\usblib.lib".

Tack för alla svar, nu ska jag sitta och skicka massa data-packets mellan Tiva:n och datorn hela dagen!
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Trubbel med Tiva C / CCS

Inlägg av sodjan »

> Enligt exempelkoden och instruktionen från TI ska inte USBDBulk.c behövas läggas till.

Nej, den är ju så klart redan inkluderad i usblib.lib. Oavsett vilken av metoderna man
väljer så fungerar det rent tekniskt. Det handlar mer om hur man adminstrerar sina
källkoder och objektfiler. *Jag* visste ju inte att det fanns en lib också... :-)

Det jag undrar är, var det inte dokumenterat någonstans alls att lib'en skulle läggas till?
brevbärar-orre
Inlägg: 22
Blev medlem: 21 december 2011, 17:24:33

Re: Trubbel med Tiva C / CCS

Inlägg av brevbärar-orre »

Nej det är klart, jag var inte heller med på att det fanns en .lib för USB..
I deras workbook nämns inte det, och jag har inte sett det i dokumentationen för USB-funktionerna.

Det bör tilläggas att jag började med CCS för typ 2-3 veckor sedan, så det kan vara vedertaget att man ska göra just så i CCS. Tidigare har jag suttit i bl.a. IAR (med MSP430) och mestadels hållt mig till interrupts och GPIO :)
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Trubbel med Tiva C / CCS

Inlägg av sodjan »

OK... :-)

Om det inte tydligt anges att man ska lägga till lib'en i sökvägen
för "libraries", så är det en "bug" i dokumentationen... :-)
Nerre
Inlägg: 27229
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Trubbel med Tiva C / CCS

Inlägg av Nerre »

Nja, det är nog mer bugg bakom tangentbordet där. När man inkluderar en .h-fil så är det väl uppenbart att man på något sätt måste inkludera motsvarande kod i projektet? Antingen inkludera en .c-fil (som då kompileras) eller inkludera en objektfil till länkaren.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Trubbel med Tiva C / CCS

Inlägg av sodjan »

Jo, vi lite mer vana undrade ju var själva koden fanns... :-)
Men oavsett det, så är det självklart en brist i
dokumentationen att det inte anges tydligt där.
brevbärar-orre
Inlägg: 22
Blev medlem: 21 december 2011, 17:24:33

Re: Trubbel med Tiva C / CCS

Inlägg av brevbärar-orre »

Hej!
Det är en hel del buggar bakom tangentbordet helt klart :)
Det är även en del trollerier i CCS, men jag har löst detta nu, och Launchpaden dyker upp som en device i datorn nu.

Det visar sig, efter lite om och men att det krävdes lite mer programmering än vad jag väntat mig efter att ha suttit med TI:s guide för att sätta upp en USB-device.
Så ja, deras dokumentation kunde ha varit bättre!
Antagligen så har jag missat ett datablad eller en instruktion, men dokumentet i fråga är i så fall väldigt dåligt refererat...

Det som jag suttit med senaste dagen var att deklarera och leta upp alla interrupts som naturligtvis måste hanteras, min uppfattning var dock att dessa redan hanterades av de inkluderade filerna, men jag hade fel. Dessa måste deklareras i Start-up-filen.

Man är även tvungen att definiera två symboler som används i dessa: "TARGET_IS_BLIZZARD_RB1" samt "UART_BUFFERD" för att kunna använda vissa interrupts och funktioner.
Skriv svar