This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430f5529 launchpad HID example projects won't link

Other Parts Discussed in Thread: MSP430F5529, MSP430WARE

I am trying to test out the MSP430f5529 launchpad's USB functions with the example projects from TI. They all have the same problem, a lot of "unresolved symbol" errors in the link. I am using CCS 5.5 with the projects imported straight in without any changes. It looks like a missing library or source file, but where do I look to find it?

Here is the error listing:

Description    Resource    Path    Location    Type
unresolved symbol SYSUNIV, first referenced in ./main.obj    H0_SimpleSend             C/C++ Problem
unresolved symbol TA0CCR0, first referenced in ./main.obj    H0_SimpleSend             C/C++ Problem
unresolved symbol SYSBERRIV, first referenced in ./main.obj    H0_SimpleSend             C/C++ Problem
unresolved symbol UCSCTL2, first referenced in ./USB_API/USB_Common/usb.obj    H0_SimpleSend             C/C++ Problem
unresolved symbol UCSCTL3_L, first referenced in ./USB_API/USB_Common/usb.obj    H0_SimpleSend             C/C++ Problem
unresolved symbol TA0CCTL0, first referenced in ./main.obj    H0_SimpleSend             C/C++ Problem
unresolved symbol TA0CTL, first referenced in ./main.obj    H0_SimpleSend             C/C++ Problem
unresolved symbol USBCNF, first referenced in ./USB_API/USB_Common/usb.obj    H0_SimpleSend             C/C++ Problem
unresolved symbol USBCTL, first referenced in ./USB_API/USB_Common/usb.obj    H0_SimpleSend             C/C++ Problem
unresolved symbol UCSCTL4_L, first referenced in ./USB_API/USB_Common/usb.obj    H0_SimpleSend             C/C++ Problem
unresolved symbol UCSCTL5_L, first referenced in ./USB_API/USB_Common/usb.obj    H0_SimpleSend             C/C++ Problem
unresolved symbol USBIEPIFG, first referenced in ./USB_API/USB_HID_API/UsbHid.obj    H0_SimpleSend             C/C++ Problem
unresolved symbol USBIEPIE, first referenced in ./USB_API/USB_Common/usb.obj    H0_SimpleSend             C/C++ Problem
unresolved symbol USBIE, first referenced in ./USB_API/USB_Common/usb.obj    H0_SimpleSend             C/C++ Problem
unresolved symbol USBFUNADR, first referenced in ./USB_API/USB_Common/usb.obj    H0_SimpleSend             C/C++ Problem
unresolved symbol USBPHYCTL, first referenced in ./USB_API/USB_Common/usb.obj    H0_SimpleSend             C/C++ Problem
unresolved symbol USBOEPIE, first referenced in ./USB_API/USB_Common/usb.obj    H0_SimpleSend             C/C++ Problem
unresolved symbol USBKEYID, first referenced in ./USB_API/USB_Common/usb.obj    H0_SimpleSend             C/C++ Problem
unresolved symbol USBIFG, first referenced in ./USB_API/USB_Common/usb.obj    H0_SimpleSend             C/C++ Problem
unresolved symbol USBPWRCTL, first referenced in ./USB_API/USB_Common/usb.obj    H0_SimpleSend             C/C++ Problem
unresolved symbol USBPLLIR, first referenced in ./USB_API/USB_Common/usb.obj    H0_SimpleSend             C/C++ Problem
unresolved symbol USBPLLDIVB, first referenced in ./USB_API/USB_Common/usb.obj    H0_SimpleSend             C/C++ Problem
unresolved symbol USBPLLCTL, first referenced in ./USB_API/USB_Common/usb.obj    H0_SimpleSend             C/C++ Problem
#10010 errors encountered during linking; "H0_SimpleSend.out" not built    H0_SimpleSend             C/C++ Problem
<a href="file:/C:/Texas%20Instruments/ccsv5/tools/compiler/dmed/HTML/10234.html">#10234-D</a>  unresolved symbols remain    H0_SimpleSend             C/C++ Problem
unresolved symbol WDTCTL, first referenced in ./system_pre_init.obj    H0_SimpleSend             C/C++ Problem
unresolved symbol USBVECINT, first referenced in ./USB_config/UsbIsr.obj    H0_SimpleSend             C/C++ Problem

Thanks

  • Found the problem, all the example projects are missing the link command file. I created a new, blank, project and then copied the "lnk_msp430f5529.cmd" file from the new project to the example project. Now builds and runs.

    How could you ship examples missing such a vital piece?

  • The USB developers package v4.00.00 uses CCS project spec files to define the examples. This works well with newer versions of CCS v5.5

    Which version of CCS 5.5 are you using? The reason I ask is that CCSv5.3, CCSv5.4 and older versions of CCSv5.5 (older than CCSv5.5.0.00047) have a known issue with importing project spec files. This is documented in the release notes.

    Please check and let me know if this is the issue that you are seeing.

    Older CCS Build Errors

    • Upon importing an example, lnk_msp430f5529.cmd file is missing from the project.
    • Browse to <CCS_INSTALL_DIR>\ccsv5\ccs_base\msp430\include. Add lnk_msp430f5529.cmd file to your project.
    • Some USB examples also include an application specific header file. In such cases add lnk_msp430f5529.cmd as well as msp430usb.cmd from <USB_DEVELOPERS_PACKAGE_INSTALL_DIR>\MSP430_SW_Development\MSP430_USB_API\USB_API.
    Regards,
    Nitya Ramdas
  • Yes, that was the problem.

    Please note that I seriously question the wisdom of releasing examples that only work properly with the latest version of CSS, especially when that version has only been available slightly more than one month. Since many in your audience will not have the wish or the ability to upgrade at this time, dangling these examples in front of the is just plain mean spirited and lazy. Lazy because you could have made them backward compatible, you just didn't.

    Perhaps you can pass this on to the manager in charge of creating those examples:

    Congratulations on ruining the out-of-box experience of newbies just trying out this platform for the first time. I wonder how many have simply given up in frustration, walked away, and you will never see them, or their companies, as customers again. But hey, you saved, what, 10 seconds, by not including that file, and covered your ass with a line in the release notes, so it's all good, right?

  • Hi Rodney,

    Some reasoning behind this decision to support only CCSv5.5.

    MSP430ware as a whole including the USB stack moved towards using CCS project specification files, which make it easier for the customer to import and build CCS projects. It causes the imported project to "adapt" to the customer's settings, CCS version, version of compiler etc.

    This change to using project spec files revealed an issue with older CCS versions and did not allow a project to have more than one linker command file. The USB stack examples require sometimes upto 3 linker command files. We could have shipped  the linker command file but that would have been a special version that would have to be maintained and would be out of sync with the package shipped in customer's CCS install.

    The USB stack was the piece that was susceptible to this problem since it required more than one linker command file. In the end we made the decision to provide a nice out-of-the box experience when using CCSv5.5 instead of supporting different versions of CCS in a not so portable manner.

    We compromised by making sure that the User experience code for the 5529 LaunchPad worked on all CCS versions.

    I will pass on your concerns and I apologise for the bad experience.

    Regards,

    Nitya Ramdas

  • Rodney K Whitehouse said:
    Please note that I seriously question the wisdom of releasing examples that only work properly with the latest version of CSS

    Sample code that requires new features of new tools will only work with new tools.
    If all sample code would run with old tools, there would be no reason for new tools.
    And checking all new sample code for backwards compatibility with all old tool versions is a huge (and therefore expensive) task

    I'd too appreciate getting new features in my tools while being 100% backwards (and forwards!) compatible to the tools I have or will have in future. But that's a dream.

    Well, sample code should clearly state the required minimum (or exact) tool version.

    Rodney K Whitehouse said:
    I wonder how many have simply given up in frustration, walked away, and you will never see them, or their companies, as customers again.

    If this were really an issue, Microsoft and Apple were gone long since. :)
    Those who give up on the first problem and are even unable to go to the forum for help, are the wrong people for doing embedded work anyway.

  • I am curious which version of CCSv5.5 is being used here.  Rodney mentioned that he is using CCSv5.5 and Nitya mentioned "newer" versions of CCSv5.5.  The reality is there is only 1 version of CCSv5.5.  There were beta releases but those should not be in use for production code.  If these projects don't work with a beta version I am not overly concerned.  However if these examples do not work with the GA version of CCSv5.5 which is 5.5.0.00077 then there is a real problem here.

    john


  • The examples work with the GA version 5.5.0.00077.

     

    Regards.

    Nitya Ramdas

  • I used/am using 5.5, but I upgraded *after* I imported the projects and had problems, so upgrading solved nothing. This thread is the only information on this problem that is currently out there, so I was left totally in the dark. In this day and age there is absolute no excuse for that. A short note on this forum was all that would have been needed.

    What makes this so amazingly short-sighted is the fact they they are apparently transitioning their examples to this new format that requires 5.5, and pretty soon they are going to be deluged by people with the same problem. Why not make the reasonable attempt to get ahead of this problem?

    While I'm at it, I have another bone to pick: NONE of the example host C code works with the embedded code. One compiled example works, but no source is provided. Nor could I find any documentation on TI's new API. It took be a few days to figure out what the issues are and get it working. Since TI seems hellbent on keeping the secret, far be it from me to spoil the fun.

  • Ok, 5.5 would need to be in use when the projects were imported.  I will take a look and see what the documentation with the examples says.

    Is this the package you were using: http://www.ti.com/tool/msp430usbdevpack

  • When I click on the link to "Get Software" I am taken to this page: http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSP430_USB_Developers_Package/latest/index_FDS.html

    On it I see a dependencies section which highlights the versions of CCS and IAR EW needed to use the examples.

    Dependencies

    I downloaded and extracted the zip.  The dependency information on the webpage mentioned there was something in the release notes that talked about using older versions of CCS.  When look at the release notes I see the exact problem listed in this thread:

    Known Issues

    There are some known issues with importing and building USB examples with older versions of CCS and IAR.

    CCS
    1.  Build Errors
    • Upon importing an example, lnk_msp430f5529.cmd file is missing from the project.
    • Browse to <CCS_INSTALL_DIR>\ccsv5\ccs_base\msp430\include. Add lnk_msp430f5529.cmd file to your project.
    • Some USB examples also include an application specific header file. In such cases add lnk_msp430f5529.cmd as well as msp430usb.cmd from <USB_DEVELOPERS_PACKAGE_INSTALL_DIR>\MSP430_USB_Software\MSP430_USB_API\USB_API
    2. Build Warnings
    • The following warning will appear. This has been fixed in CCS5.5
      #303-D typedef name has already been declared (with same type)    gpio.c    /C0_SimpleSend/driverlib/MSP430F5xx_6xx    line 70, external location: C:\ti\CCS5_3_0_00090\ccsv5\ccs_base\msp430\include\msp430f5529.h    C/C++ Problem
    So that is actually not bad.  Our documentation isn't the best all the time but in this case both the download page and the release notes make it clear that you need 5.5 and if you don't have 5.5 what you will see.
    I then tried the same H0_SimpleSend project and it imported and built fine for me.    One issue I did notice is that the webpage and release notes talked about resource explorer integration.  I didn't see that integration for this project.  I checked out the users guide and based on the screen capture they have there I can see where the examples are in resource explorer, basically they are under libraries.  So I looked under libraries and was able to import examples from resource explorer fine.
    In summary it seemed to be documented pretty well.  About the only additional thing that could be done would be to have the tool itself do some version checking.  That would certainly be nice.
    John

**Attention** This is a public forum