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.

Rebuild MSP430Ware driverlib and TI-RTOS driver libraries for MSP430F6736

Other Parts Discussed in Thread: MSP430F6736, MSP430WARE, CC3100

Hi,

When I try to rebuild MSP430Ware Driverlib and TI-RTOS driver libraries for the MSP430F6736 MCU, I still get the same issues as listed in:

The issue is with the EUSCI/USCI libraries being built by using a wrong expression of regular expressions. I have fixed it for myself, but I think this issue needs to be resolved once and for all by TI.

I am using CCS for Mac OS X version 6.1.1.00028 and the TI-RTOS version used is 2.14.03.28 and XDC tools version is 3.31.01.33.

  • Hi Anup,
    Thanks for the feedback. I have filed a bug against this, TIRTOS-350. Were you able to rebuild ok? There are two files that need to be modified: ti/drivers/package.bld, and ti/drivers/getMSP430Options.xs.
    Best regards,
    Janet
  • Hi Janet,

    Thanks for the confirmation. Yes, I was able to build with the modifications. Figured them out from the thread I've mentioned. But, it's pretty surprising that this bug has stayed so long!
  • Hi Janet,

    I was trying this again because of a fresh install of CCS and TI-RTOS. But, now I am facing issues! Although I have edited the "packages/ti/drivers/package.bld" file, and I didn't see anything worth changing in the "packages/ti/drivers/msp43xOptions.xs" file, rebuilding the library has been an issue. Please note that I did a "clean" first, and then building "all". The issue creeps up while building the sdspi interface, which is obvious because the eUSCI library for MSP430FR5xxx series has 3 arguments for the GPIO interface, while the eUSCI library for MSP430F6736 has just 2 options! This is the error (with -v added to XDC options):

    rm -f package/lib/lib/drivers_MSP430F6736/./sdspi/SDSPIEUSCIA.oe430X
    #
    # cle430X sdspi/SDSPIEUSCIA.c ...
    /Applications/ti/ccsv6/tools/compiler/ti-cgt-msp430_4.4.6/bin/cl430 --abi=eabi -c -qq -pdsw225 -vmspx --near_data=none --code_model=large --data_model=restricted -eo.oe430X -ea.se430X -g -Dxdc_target_name__=MSP430X -Dxdc_target_types__=ti/targets/msp430/elf/std.h -Dxdc_bld__profile_release -Dxdc_bld__vers_1_0_4_4_6 -O2 -g --optimize_with_debug -I/Applications/ti/ccsv6/ccs_base/msp430/include -I/Applications/ti/tirtos_msp43x_2_14_03_28/products/MSPWare_2_00_00_40c/driverlib/MSP430F5xx_6xx -D__MSP430F6736__ -DMSP430WARE -I./wifi/cc3100/Simplelink -I./wifi/cc3100/Simplelink/Include -Dxdc_runtime_Log_DISABLE_ALL -Dxdc_runtime_Assert_DISABLE_ALL -I. -I/Applications/ti/tirtos_msp43x_2_14_03_28/packages -I/Applications/ti/tirtos_msp43x_2_14_03_28/products/bios_6_42_03_35/packages -I/Applications/ti/tirtos_msp43x_2_14_03_28/products/uia_2_00_02_39/packages -I/Applications/ti/xdctools_3_32_00_06_core/packages -I../.. -I/Applications/ti/ccsv6/tools/compiler/ti-cgt-msp430_4.4.6/include -fs=./package/lib/lib/drivers_MSP430F6736/./sdspi -fr=./package/lib/lib/drivers_MSP430F6736/./sdspi -fc sdspi/SDSPIEUSCIA.c
    "sdspi/SDSPIEUSCIA.c", line 311: error: too many arguments in function call
    "sdspi/SDSPIEUSCIA.c", line 1046: error: too many arguments in function call
    "sdspi/SDSPIEUSCIA.c", line 1050: error: too many arguments in function call
    "sdspi/SDSPIEUSCIA.c", line 1054: error: too many arguments in function call
    4 errors detected in the compilation of "sdspi/SDSPIEUSCIA.c".

    >> Compilation failure
    gmake[1]: *** [package/lib/lib/drivers_MSP430F6736/./sdspi/SDSPIEUSCIA.oe430X] Error 1
    gmake: *** [packages/ti/drivers,.libraries] Error 2
    gmake: *** [drivers] Error 2

    Please help.

  • Hi Anup,

    I ran into the same problem with the different GPIO interfaces.  Our fix for building TI-RTOS for other MSP430 devices is to add #ifdefs into each of the EUSCI / USCI TI-RTOS driver source files, such as the following in SPIEUSCIADMA.c:

    /*
     *  Pull in the generic msp430 header file, which will bring in the device
     *  specific header file.  The device specific msp430 header file will
     *  have __MSP430_HAS_EUSCI_A0__ defined if the device supports EUSCI A0.
     */
    #include <msp430.h>

    #ifdef __MSP430_HAS_EUSCI_A0__

    < code for SPIEUSCIADMA.c>

    #endif

    We then build the TI-RTOS library with both the EUSCI and the USCI files, and depending on what the device has, the relevant code is compiled in.  You will not need to modify the msp430Options.xs file, just the package.bld and the source files with the #fidefs.  I am attaching a few of the source files and the package.bld so you can see how to build the TI-RTOS driver library for your device.   I am just attaching the fixes for the SPI driver, and similar changes need to be applied to I2C, SDSPI, and UART.

    The next TI-RTOS  with this fix will not be out for another month or so, I hope this will allow to continue in the meantime.

    Best regards,

        Janet

    0407.SPIEUSCIADMA.c3122.SPIEUSCIBDMA.c6201.SPIUSCIBDMA.c3465.package.bld.txt

  • Hi Janet,

    Thanks a lot for the confirmation and the fixes.

    I have somehow been able to build TI-RTOS build "tirtos_msp43x_2_15_00_17" (I don't think it's official but I was able to download it for Mac OS X) by only changing package.bld, "products/tidrivers_msp43x_2_15_00_26/packages/ti/drivers/sdspi/SDSPIEUSCIA.c" and "products/tidrivers_msp43x_2_15_00_26/packages/ti/drivers/sdspi/SDSPIEUSCIB.c".

    I will compare with your files to see why I was able to compile with just these changes! :)

    Either way, I have been able to proceed, and would like to get UIA working on the Mac now.