Jump to content
43oh

"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? 

 

 

 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...