Jump to content
Sign in to follow this  
Volbert

"usblib" + gcc 4.8.2 linker problem

Recommended Posts

Greetings,

 

I am currently working on a personal project using Tiva Launchpad together with Eclipse Kepler IDE and GNU ARM Embedded Tools (gcc version 4.8.2). Last week my efforts were focused on making the "usb_dev_serial" example (Tivaware 2.0.1.11577) work with that development setup (also i'm using it all on Windows 8).

 

So far, a simple I2C master + button interrupt + LED toggling example I've made with this development configuration is working OK. When the USB module was added ("usb_dev_serial" skeleton added to my project), some compiling issues arised, but got fixed after I put "libusb.a" as resource library for the linking process. Unfortunately, some linking problems appeared (CDT build console exposed below):

C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdcdc.o): In function `HandleRequests':
usbdcdc.c:(.text.HandleRequests+0x58): undefined reference to `USBDevEndpointDataAck'
usbdcdc.c:(.text.HandleRequests+0x64): undefined reference to `USBDevEndpointDataAck'
usbdcdc.c:(.text.HandleRequests+0x88): undefined reference to `USBDevEndpointDataAck'
usbdcdc.c:(.text.HandleRequests+0xba): undefined reference to `USBDevEndpointDataAck'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdcdc.o): In function `SendSerialState':
usbdcdc.c:(.text.SendSerialState+0x42): undefined reference to `USBEndpointDataPut'
usbdcdc.c:(.text.SendSerialState+0x52): undefined reference to `USBEndpointDataPut'
usbdcdc.c:(.text.SendSerialState+0x66): undefined reference to `USBEndpointDataSend'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdcdc.o): In function `CDCTickHandler':
usbdcdc.c:(.text.CDCTickHandler+0x8c): undefined reference to `USBEndpointDataAvail'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdcdc.o): In function `ProcessDataFromHost':
usbdcdc.c:(.text.ProcessDataFromHost+0xa): undefined reference to `USBEndpointStatus'
usbdcdc.c:(.text.ProcessDataFromHost+0x18): undefined reference to `USBDevEndpointStatusClear'
usbdcdc.c:(.text.ProcessDataFromHost+0x40): undefined reference to `USBEndpointDataAvail'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdcdc.o): In function `ProcessNotificationToHost':
usbdcdc.c:(.text.ProcessNotificationToHost+0xa): undefined reference to `USBEndpointStatus'
usbdcdc.c:(.text.ProcessNotificationToHost+0x16): undefined reference to `USBDevEndpointStatusClear'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdcdc.o): In function `ProcessDataToHost':
usbdcdc.c:(.text.ProcessDataToHost+0xa): undefined reference to `USBEndpointStatus'
usbdcdc.c:(.text.ProcessDataToHost+0x16): undefined reference to `USBDevEndpointStatusClear'
usbdcdc.c:(.text.ProcessDataToHost+0x52): undefined reference to `USBEndpointDataSend'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdcdc.o): In function `USBDCDCPacketWrite':
usbdcdc.c:(.text.USBDCDCPacketWrite+0x20): undefined reference to `USBEndpointDataPut'
usbdcdc.c:(.text.USBDCDCPacketWrite+0x46): undefined reference to `USBEndpointDataSend'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdcdc.o): In function `USBDCDCPacketRead':
usbdcdc.c:(.text.USBDCDCPacketRead+0x10): undefined reference to `USBEndpointStatus'
usbdcdc.c:(.text.USBDCDCPacketRead+0x3c): undefined reference to `USBEndpointDataAvail'
usbdcdc.c:(.text.USBDCDCPacketRead+0x50): undefined reference to `USBEndpointDataGet'
usbdcdc.c:(.text.USBDCDCPacketRead+0x64): undefined reference to `USBDevEndpointStatusClear'
usbdcdc.c:(.text.USBDCDCPacketRead+0x70): undefined reference to `USBDevEndpointDataAck'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdcdc.o): In function `USBDCDCRxPacketAvailable':
usbdcdc.c:(.text.USBDCDCRxPacketAvailable+0x16): undefined reference to `USBEndpointStatus'
usbdcdc.c:(.text.USBDCDCRxPacketAvailable+0x2a): undefined reference to `USBEndpointDataAvail'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdenum.o): In function `USBDEP0StateTx.clone.0':
usbdenum.c:(.text.USBDEP0StateTx.clone.0+0x22): undefined reference to `USBEndpointDataPut'
usbdenum.c:(.text.USBDEP0StateTx.clone.0+0x46): undefined reference to `USBEndpointDataSend'
usbdenum.c:(.text.USBDEP0StateTx.clone.0+0x36): undefined reference to `USBEndpointDataSend'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdenum.o): In function `USBDCDInit':
usbdenum.c:(.text.USBDCDInit+0x40): undefined reference to `USBClockEnable'
usbdenum.c:(.text.USBDCDInit+0x4a): undefined reference to `USBULPIEnable'
usbdenum.c:(.text.USBDCDInit+0x68): undefined reference to `USBULPIDisable'
usbdenum.c:(.text.USBDCDInit+0x74): undefined reference to `USBDevMode'
usbdenum.c:(.text.USBDCDInit+0x7e): undefined reference to `USBOTGMode'
usbdenum.c:(.text.USBDCDInit+0x94): undefined reference to `USBDevLPMConfig'
usbdenum.c:(.text.USBDCDInit+0x9c): undefined reference to `USBLPMIntEnable'
usbdenum.c:(.text.USBDCDInit+0xa2): undefined reference to `USBDevLPMEnable'
usbdenum.c:(.text.USBDCDInit+0xae): undefined reference to `USBDevLPMDisable'
usbdenum.c:(.text.USBDCDInit+0xb6): undefined reference to `USBDevLPMConfig'
usbdenum.c:(.text.USBDCDInit+0xfe): undefined reference to `USBIntStatusControl'
usbdenum.c:(.text.USBDCDInit+0x104): undefined reference to `USBIntStatusEndpoint'
usbdenum.c:(.text.USBDCDInit+0x10c): undefined reference to `USBIntEnableControl'
usbdenum.c:(.text.USBDCDInit+0x116): undefined reference to `USBIntEnableEndpoint'
usbdenum.c:(.text.USBDCDInit+0x11c): undefined reference to `USBDevConnect'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdenum.o): In function `USBDCDStallEP0':
usbdenum.c:(.text.USBDCDStallEP0+0x8): undefined reference to `USBDevEndpointStall'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdma.o): In function `iDMAUSBChannelRelease':
usbdma.c:(.text.iDMAUSBChannelRelease+0x8): undefined reference to `USBDMAChannelDisable'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdma.o): In function `iDMAUSBChannelAllocate':
usbdma.c:(.text.iDMAUSBChannelAllocate+0x1e): undefined reference to `USBDMAChannelDisable'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdma.o): In function `iDMAUSBChannelDisable':
usbdma.c:(.text.iDMAUSBChannelDisable+0xa): undefined reference to `USBDMAChannelDisable'
usbdma.c:(.text.iDMAUSBChannelDisable+0x12): undefined reference to `USBDMAChannelIntDisable'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdma.o): In function `iDMAUSBChannelIntDisable':
usbdma.c:(.text.iDMAUSBChannelIntDisable+0x4): undefined reference to `USBDMAChannelIntDisable'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdma.o): In function `iDMAUSBChannelIntEnable':
usbdma.c:(.text.iDMAUSBChannelIntEnable+0x4): undefined reference to `USBDMAChannelIntEnable'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdma.o): In function `iDMAUSBChannelEnable':
usbdma.c:(.text.iDMAUSBChannelEnable+0x36): undefined reference to `USBDMAChannelIntEnable'
usbdma.c:(.text.iDMAUSBChannelEnable+0x3e): undefined reference to `USBDMAChannelEnable'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdma.o): In function `iDMAUSBTransfer':
usbdma.c:(.text.iDMAUSBTransfer+0x40): undefined reference to `USBDMAChannelAddressSet'
usbdma.c:(.text.iDMAUSBTransfer+0x4a): undefined reference to `USBDMAChannelCountSet'
usbdma.c:(.text.iDMAUSBTransfer+0x6e): undefined reference to `USBEndpointPacketCountSet'
usbdma.c:(.text.iDMAUSBTransfer+0x84): undefined reference to `USBEndpointDMAConfigSet'
usbdma.c:(.text.iDMAUSBTransfer+0x98): undefined reference to `USBDMAChannelConfigSet'
usbdma.c:(.text.iDMAUSBTransfer+0xc2): undefined reference to `USBEndpointDMAConfigSet'
usbdma.c:(.text.iDMAUSBTransfer+0xd2): undefined reference to `USBDMAChannelConfigSet'
usbdma.c:(.text.iDMAUSBTransfer+0xea): undefined reference to `USBEndpointDMAEnable'
usbdma.c:(.text.iDMAUSBTransfer+0xf2): undefined reference to `USBDMAChannelEnable'
usbdma.c:(.text.iDMAUSBTransfer+0xfa): undefined reference to `USBEndpointDMADisable'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdma.o): In function `iDMAUSBIntStatus':
usbdma.c:(.text.iDMAUSBIntStatus+0x2): undefined reference to `USBDMAChannelIntStatus'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdma.o): In function `iDMAUSBChannelStatus':
usbdma.c:(.text.iDMAUSBChannelStatus+0x8): undefined reference to `USBDMAChannelStatus'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdma.o): In function `uDMAUSBUnitSizeSet':
usbdma.c:(.text.uDMAUSBUnitSizeSet+0x6e): undefined reference to `uDMAChannelControlSet'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdma.o): In function `uDMAUSBArbSizeSet':
usbdma.c:(.text.uDMAUSBArbSizeSet+0x6e): undefined reference to `uDMAChannelControlSet'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdma.o): In function `uDMAUSBIntStatus':
usbdma.c:(.text.uDMAUSBIntStatus+0x12): undefined reference to `uDMAChannelModeGet'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdma.o): In function `uDMAUSBChannelRelease':
usbdma.c:(.text.uDMAUSBChannelRelease+0xe): undefined reference to `uDMAChannelAttributeDisable'
usbdma.c:(.text.uDMAUSBChannelRelease+0x2c): undefined reference to `USBEndpointDMADisable'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdma.o): In function `uDMAUSBChannelEnable':
usbdma.c:(.text.uDMAUSBChannelEnable+0x5c): undefined reference to `USBEndpointDMAEnable'
usbdma.c:(.text.uDMAUSBChannelEnable+0x62): undefined reference to `uDMAChannelEnable'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdma.o): In function `uDMAUSBTransfer':
usbdma.c:(.text.uDMAUSBTransfer+0x4a): undefined reference to `USBFIFOAddrGet'
usbdma.c:(.text.uDMAUSBTransfer+0x84): undefined reference to `uDMAChannelTransferSet'
usbdma.c:(.text.uDMAUSBTransfer+0xa2): undefined reference to `USBEndpointPacketCountSet'
usbdma.c:(.text.uDMAUSBTransfer+0xb6): undefined reference to `USBEndpointDMAConfigSet'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdma.o): In function `uDMAUSBChannelDisable':
usbdma.c:(.text.uDMAUSBChannelDisable+0x2e): undefined reference to `USBEndpointDMADisable'
usbdma.c:(.text.uDMAUSBChannelDisable+0x34): undefined reference to `uDMAChannelDisable'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdma.o): In function `uDMAUSBChannelAllocate':
usbdma.c:(.text.uDMAUSBChannelAllocate+0x86): undefined reference to `USBEndpointDMAChannel'
usbdma.c:(.text.uDMAUSBChannelAllocate+0x8e): undefined reference to `uDMAChannelAttributeDisable'
usbdma.c:(.text.uDMAUSBChannelAllocate+0x9a): undefined reference to `uDMAChannelControlSet'
usbdma.c:(.text.uDMAUSBChannelAllocate+0xb0): undefined reference to `USBEndpointDMADisable'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbdma.o): In function `USBLibDMAInit':
usbdma.c:(.text.USBLibDMAInit+0x7c): undefined reference to `USBControllerVersion'
C:\ti\TivaWare_C_Series-2.0.1.11577\usblib\gcc\libusb.a(usbulpi.o): In function `ULPIConfigSet':
usbulpi.c:(.text.ULPIConfigSet+0x8): undefined reference to `USBULPIRegRead'
usbulpi.c:(.text.ULPIConfigSet+0x18): undefined reference to `USBULPIRegWrite'
usbulpi.c:(.text.ULPIConfigSet+0x20): undefined reference to `USBULPIRegRead'
usbulpi.c:(.text.ULPIConfigSet+0x32): undefined reference to `USBULPIRegWrite'
usbulpi.c:(.text.ULPIConfigSet+0x3a): undefined reference to `USBULPIRegRead'
usbulpi.c:(.text.ULPIConfigSet+0x50): undefined reference to `USBULPIRegWrite'
collect2.exe: error: ld returned 1 exit status 

All undefined references point to functions declared in driverlib/usb. Does anybody have a clue where to start to fix this issue? 

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×