Trubbel med Tiva C / CCS
-
- Inlägg: 22
- Blev medlem: 21 december 2011, 17:24:33
Trubbel med Tiva C / CCS
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
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
-
- Inlägg: 1409
- Blev medlem: 29 januari 2011, 21:06:30
- Ort: Lapplandet
Re: Trubbel med Tiva C / CCS
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å.

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å.
-
- Inlägg: 22
- Blev medlem: 21 december 2011, 17:24:33
Re: Trubbel med Tiva C / CCS
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..
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..
Re: Trubbel med Tiva C / CCS
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.

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.
Re: Trubbel med Tiva C / CCS
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): 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"...
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): 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.
-
- Inlägg: 22
- Blev medlem: 21 december 2011, 17:24:33
Re: Trubbel med Tiva C / CCS
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!
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!
Re: Trubbel med Tiva C / CCS
> 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?
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?
-
- Inlägg: 22
- Blev medlem: 21 december 2011, 17:24:33
Re: Trubbel med Tiva C / CCS
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
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

Re: Trubbel med Tiva C / CCS
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...

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...

Re: Trubbel med Tiva C / CCS
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.
Re: Trubbel med Tiva C / CCS
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.

Men oavsett det, så är det självklart en brist i
dokumentationen att det inte anges tydligt där.
-
- Inlägg: 22
- Blev medlem: 21 december 2011, 17:24:33
Re: Trubbel med Tiva C / CCS
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.
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.