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.

MSP430F5659 TI-RTOS build fails building tirtos packages

Other Parts Discussed in Thread: MSP430F5529, MSP430F6459, MSP430F5527, MSP430FR6989, MSP430F5659, MSP430FR5969, MSP430WARE, TI-CGT

I have noted the entry by another user here: ( e2e.ti.com/support/embedded/tirtos/f/355/t/400694).  I had the same issue and updated the script for the compiler version.

After this, everything hummed along and it appears that the MSP430 driverlib was built.  However, when the script reaches building tirtos packages it fails.  I'm not certain how to proceed from here:

building tirtos packages ...
making all: Thu Oct 29 13:11:16 EDT 2015 ...
======== .interfaces [./packages/examples] ========
======== .interfaces [./packages/examples/examplesgen] ========
======== .interfaces [./packages/ti/drivers] ========
making package.mak (because of package.bld) ...
Warning: Target specification 'native' does not match any loaded target module.
No target modules were loaded.

js: "./package.bld", line 321: TypeError: Cannot read property "length" from undefined
gmake[1]: *** Deleting file `package.mak'
gmake[1]: *** No rule to make target `package.mak', needed by `.interfaces'.  Stop.
xdctools_3_31_01_33_core\gmake.exe: *** [packages/ti/drivers,.interfaces] Error 2
gmake: *** [drivers] Error 2

Here's my tirtos.mak file with relevant sections in bold.

#
#  ======== tirtos.mak ========
#

#
# Set location of various cgtools
#
# These variables can be set here or on the command line.  Paths must not
# have spaces.  If using a Windows PC, the following command can be used to
# determine the a directory's DOS path (path without spaces):
#
#     > for %I in ("path") do echo %~sI
#
# IAR Workbench example:
#     Path:        c:\Program Files (x86)\IAR Systems\Embedded Workbench 7.2
#     DOS Path:    c:\PROGRA~2\IARSYS~1\EMBEDD~1.2
#
DEFAULT_INSTALLATION_DIR ?= c:/ti
CCS_COMPILERS_DIR        ?= $(DEFAULT_INSTALLATION_DIR)/ccsv6/tools/compiler

#
# Enable TI-RTOS to build for CCS.
# Set CCS_BUILD to true and modify path to toolchain
#
CCS_BUILD ?= true
TI_INSTALLATION_DIR           ?= $(CCS_COMPILERS_DIR)
ti.targets.msp430.elf.MSP430X ?= $(TI_INSTALLATION_DIR)/ti-cgt-msp430_4.4.6
# note: there are two compiler directories in my ccs (ti) directory: (ti-cgt-msp430_4.4.5 and
ti-cgt-msp430_4.4.6).
ti.targets.arm.elf.M4F        ?= $(TI_INSTALLATION_DIR)/ti-cgt-arm_5.2.2

#
# Enable TI-RTOS to build for IAR.
# Set IAR_BUILD to true and modify path to toolchain.
#
# The IAR_MSP430/ARM_INSTALLATION_DIR must be set to point to the
# "Embedded Workbench x.y" directory in IAR Workbench.  This path MUST NOT
# contain spaces.  If using a Windows PC, see the comments above for steps to
# get the DOS path for a directory.
#
IAR_BUILD ?= false
IAR_MSP430_INSTALLATION_DIR      ?= c:/iar
iar.targets.msp430.MSP430X_small ?= $(IAR_MSP430_INSTALLATION_DIR)/430
IAR_MSP430HEADERS                ?= $(IAR_MSP430_INSTALLATION_DIR)/430/inc

IAR_ARM_INSTALLATION_DIR         ?= c:/iar
iar.targets.arm.M4F              ?= $(IAR_ARM_INSTALLATION_DIR)/arm
IAR_MSP432HEADERS                ?= $(IAR_ARM_INSTALLATION_DIR)/arm/inc/TexasInstruments

#
# Enable TI-RTOS to build for GCC.
# Set GCC_BUILD to true and modify path to toolchain
#
GCC_BUILD ?= false
GCC_INSTALLATION_DIR ?= $(CCS_COMPILERS_DIR)
gnu.targets.arm.M4F  ?= $(GCC_INSTALLATION_DIR)/gcc-arm-none-eabi-4_8-2014q3

#
# Enable TI-RTOS to build for MSP430/MSP432 devices.
# Set MSP430_BUILD or MSP432_BUILD to false to skip building TI-RTOS for the
# respective device family.
#
MSP430_BUILD ?= true
MSP432_BUILD ?= false

#
# TI-RTOS and XDCTools settings
#
XDCTOOLS_INSTALLATION_DIR ?= $(DEFAULT_INSTALLATION_DIR)/xdctools_3_31_01_33_core
export XDCTOOLS_JAVA_HOME ?= $(DEFAULT_INSTALLATION_DIR)/ccsv6/eclipse/jre

TIRTOS_INSTALLATION_VER   ?= tirtos_msp43x_2_14_03_28
TIRTOS_INSTALLATION_DIR   ?= $(DEFAULT_INSTALLATION_DIR)/$(TIRTOS_INSTALLATION_VER)
BIOS_INSTALLATION_DIR     ?= $(TIRTOS_INSTALLATION_DIR)/products/bios_6_42_03_35
UIA_INSTALLATION_DIR      ?= $(TIRTOS_INSTALLATION_DIR)/products/uia_2_00_02_39
MSPWARE_INSTALLATION_DIR  ?= $(TIRTOS_INSTALLATION_DIR)/products/MSPWare_2_00_00_40c
MSP430HEADERS             ?= $(DEFAULT_INSTALLATION_DIR)/ccsv6/ccs_base/msp430/include
MSP432HEADERS             ?= $(DEFAULT_INSTALLATION_DIR)/ccsv6/ccs_base/arm/include

#
# To build TI-RTOS driver libraries for other MSP430 devices; simply append the
# device names to MSP430DEVLIST (separated by commas)
# MSP430DEVLIST := MSP430F5529,MSP430F5527,MSP430F6459,etc...
#
MSP430DEVLIST := MSP430F5529,MSP430FR5969,MSP430FR6989, MSP430F5659

#
# To build TI-RTOS driver libraries for other MSP432 devices; simply append the
# device names to MSP432DEVLIST (separated by commas)
# MSP432DEVLIST := MSP432P401R,etc...
#
MSP432DEVLIST := MSP432P401R

#
# Set XDCARGS to some of the variables above.  XDCARGS are passed
# to the XDC build engine... which will load tirtos.bld... which will
# extract these variables and use them to determine what to build and which
# toolchains to use.
#
# Note that not all of these variables need to be set to something valid.
# Unfortunately, since these vars are unconditionally assigned, your build line
# will be longer and more noisy than necessary (e.g., it will include CC_V5T
# assignment even if you're just building for C64P).
#
# Some background is here:
#     rtsc.eclipse.org/.../Command_-_xdc
#
XDCARGS = \
    profile=release \
    XDCTOOLS=$(XDCTOOLS_INSTALLATION_DIR) \
    TIRTOS=$(TIRTOS_INSTALLATION_DIR) \
    BIOS=$(BIOS_INSTALLATION_DIR) \
    UIA=$(UIA_INSTALLATION_DIR) \
    MSPWARE=$(MSPWARE_INSTALLATION_DIR) \
    MSP430DEVLIST="$(MSP430DEVLIST)" \
    MSP432DEVLIST="$(MSP432DEVLIST)"

ifeq ("$(CCS_BUILD)", "true")
ifeq ("$(MSP430_BUILD)", "true")
XDCARGS += \
    ti.targets.msp430.elf.MSP430X=$(ti.targets.msp430.elf.MSP430X) \
    MSP430HEADERS=$(MSP430HEADERS)
    allmsp430ware += msp430ware
endif
ifeq ("$(MSP432_BUILD)", "true")
XDCARGS += \
    ti.targets.arm.elf.M4F=$(ti.targets.arm.elf.M4F) \
    MSP432HEADERS=$(MSP432HEADERS)
endif
endif

ifeq ("$(IAR_BUILD)", "true")
ifeq ("$(MSP430_BUILD)", "true")
XDCARGS += \
    iar.targets.msp430.MSP430X_small=$(iar.targets.msp430.MSP430X_small) \
    IAR_MSP430HEADERS=$(IAR_MSP430HEADERS)
    allmsp430ware += iar-msp430ware
endif
ifeq ("$(MSP432_BUILD)", "true")
XDCARGS += \
    iar.targets.arm.M4F=$(iar.targets.arm.M4F) \
    IAR_MSP432HEADERS=$(IAR_MSP432HEADERS)
endif
endif

ifeq ("$(GCC_BUILD)", "true")
XDCARGS += \
    gnu.targets.arm.M4F=$(gnu.targets.arm.M4F) \
    MSP432HEADERS=$(MSP432HEADERS)
endif

export XDCARGS

#
# Set XDCPATH to contain necessary repositories.
#
XDCPATH = $(TIRTOS_INSTALLATION_DIR)/packages;$(BIOS_INSTALLATION_DIR)/packages;$(UIA_INSTALLATION_DIR)/packages;
export XDCPATH

#
# Set XDCOPTIONS.  Use -v for a verbose build.
#
#XDCOPTIONS=v
export XDCOPTIONS

#
# Set XDC executable command
# Note that XDCBUILDCFG points to the tirtos.bld file which uses
# the arguments specified by XDCARGS
#
XDC = $(XDCTOOLS_INSTALLATION_DIR)/xdc XDCARGS="$(XDCARGS)" XDCBUILDCFG=./tirtos.bld
XS = $(XDCTOOLS_INSTALLATION_DIR)/xs

#######################################################
## Shouldn't have to modify anything below this line ##
#######################################################

help:
    @ echo Makefile to build components within TI-RTOS
    @ echo   goal              description
    @ echo  -----------------------------------------------------------------------------
    @ echo   all               Builds SYS/BIOS, UIA, and TI-RTOS drivers
    @ echo   drivers           Builds TI-RTOS drivers and other components in /packages
    @ echo   bios              Builds SYS/BIOS
    @ echo   uia               Builds UIA
    @ echo   msp430ware        Builds MSP430Ware CCS libraries
    @ echo   iar-msp430ware    Builds MSP430Ware IAR libraries
    @ echo   clean             Cleans SYS/BIOS, UIA, and TI-RTOS drivers
    @ echo   clean-drivers     Cleans TI-RTOS drivers and other components in /packages
    @ echo   clean-bios        Cleans SYS/BIOS
    @ echo   clean-uia         Cleans UIA
    @ echo   clean-msp430ware  Cleans MSP430Ware libraries
    @ echo   examplesgen       Generates TI-RTOS examples and makefiles
    @ echo   help              Displays this description

all: bios uia drivers

clean: clean-uia clean-drivers clean-bios

drivers: $(allmsp430ware)
    @ echo building tirtos packages ...
    @ $(XDC) -Pr ./packages

clean-drivers: clean-msp430ware
    @ echo cleaning tirtos packages ...
    @ $(XDC) clean -Pr ./packages

bios:
    @ echo building bios ...
    @ $(XDCTOOLS_INSTALLATION_DIR)/gmake -f $(BIOS_INSTALLATION_DIR)/bios.mak \
      XDC_INSTALL_DIR=$(XDCTOOLS_INSTALLATION_DIR) \
      BIOS_SMPENABLED=0 \
      $(XDCARGS) -C $(BIOS_INSTALLATION_DIR)

clean-bios:
    @ echo cleaning bios ...
    @ $(XDCTOOLS_INSTALLATION_DIR)/gmake -f $(BIOS_INSTALLATION_DIR)/bios.mak \
      XDC_INSTALL_DIR=$(XDCTOOLS_INSTALLATION_DIR) \
      BIOS_SMPENABLED=0 \
      -C $(BIOS_INSTALLATION_DIR) clean

uia:
    @ echo building uia ...
    @ $(XDCTOOLS_INSTALLATION_DIR)/gmake -f $(UIA_INSTALLATION_DIR)/uia.mak \
      XDC_INSTALL_DIR=$(XDCTOOLS_INSTALLATION_DIR) \
      BIOS_INSTALL_DIR=$(BIOS_INSTALLATION_DIR) \
      $(XDCARGS) -C $(UIA_INSTALLATION_DIR)

clean-uia:
    @ echo cleaning uia ...
    @ $(XDCTOOLS_INSTALLATION_DIR)/gmake -f $(UIA_INSTALLATION_DIR)/uia.mak \
      XDC_INSTALL_DIR=$(XDCTOOLS_INSTALLATION_DIR) \
      BIOS_INSTALL_DIR=$(BIOS_INSTALLATION_DIR) \
      -C $(UIA_INSTALLATION_DIR) clean

msp430ware:
    @ $(MAKE) -C $(MSPWARE_INSTALLATION_DIR) PARTS='$(MSP430DEVLIST)' IPATH='$(MSP430HEADERS)' COMPILER=ccs TOOLPATH='$(ti.targets.msp430.elf.MSP430X)'

iar-msp430ware:
    @ $(MAKE) -C $(MSPWARE_INSTALLATION_DIR) PARTS='$(MSP430DEVLIST)' IPATH='$(IAR_MSP430HEADERS)' COMPILER=iar TOOLPATH='$(iar.targets.msp430.MSP430X_small)'

clean-msp430ware:
    @ $(MAKE) -C $(MSPWARE_INSTALLATION_DIR) clean

validate-paths:
ifneq (1, $(words $(ti.targets.msp430.elf.MSP430X)))
    $(error Toolchain path must not have spaces, please update the TI_INSTALLATION_DIR variable.)
endif

ifneq (1, $(words $(iar.targets.msp430.MSP430X_small)))
    $(error Toolchain path must not have spaces, please update the IAR_MSP430_INSTALLATION_DIR variable.)
endif

ifneq (1, $(words $(iar.targets.arm.M4F)))
    $(error Toolchain path must not have spaces, please update the IAR_ARM_INSTALLATION_DIR variable.)
endif

ifneq (1, $(words $(gnu.targets.arm.M4F)))
    $(error Toolchain path must not have spaces, please update the GCC_INSTALLATION_DIR variable.)
endif

examplesgen: validate-paths
ifneq ("$(DEST)","")
    @ echo generating examples in $(DEST) ...
ifeq ("$(CCS_BUILD)", "true")
    @ $(XS) examples.examplesgen \
        --productGroup="MSP430" \
        --toolchain="TI" \
        --toolchainDir="$(ti.targets.msp430.elf.MSP430X)" \
        --deviceFamily="MSP430" \
        --output="$(DEST)/$(TIRTOS_INSTALLATION_VER)_examples/MSP430"

    @ $(XS) examples.examplesgen \
        --productGroup="MSP430" \
        --toolchain="TI" \
        --toolchainDir="$(ti.targets.arm.elf.M4F)" \
        --deviceFamily="MSP432" \
        --output="$(DEST)/$(TIRTOS_INSTALLATION_VER)_examples/MSP432"
endif

ifeq ("$(IAR_BUILD)", "true")
    @ $(XS) examples.examplesgen \
        --productGroup="MSP430" \
        --toolchain="IAR" \
        --toolchainDir="$(iar.targets.msp430.MSP430X_small)" \
        --deviceFamily="MSP430" \
        --output="$(DEST)/$(TIRTOS_INSTALLATION_VER)_examples/MSP430"

    @ $(XS) examples.examplesgen \
        --productGroup="MSP430" \
        --toolchain="IAR" \
        --toolchainDir="$(iar.targets.arm.M4F)" \
        --deviceFamily="MSP432" \
        --output="$(DEST)/$(TIRTOS_INSTALLATION_VER)_examples/MSP432"
endif

ifeq ("$(GCC_BUILD)", "true")
    @ $(XS) examples.examplesgen \
        --productGroup="MSP430" \
        --toolchain="GNU" \
        --toolchainDir="$(gnu.targets.arm.M4F)" \
        --deviceFamily="MSP432" \
        --output="$(DEST)/$(TIRTOS_INSTALLATION_VER)_examples/MSP432"
endif

    @ echo ***********************************************************
    @ echo Please refer to "Examples for TI-RTOS" section in the TI-RTOS
    @ echo "Getting Started Guide" for details on how to build and load the examples
    @ echo into IAR WorkBench and CCS.
else
    @ echo Specify destination path like this: DEST="YOURPATH". Use UNIX style path "C:/examples"
endif


  • I'd guess that this is most likely due to an incorrect variable setting in your tirtos.mak file.

    Can you start by verifying the following variables will expand to the correct path?

    DEFAULT_INSTALLATION_DIR ?= c:/ti

    CCS_COMPILERS_DIR        ?= $(DEFAULT_INSTALLATION_DIR)/ccsv6/tools/compiler

    ...

    TI_INSTALLATION_DIR           ?= $(CCS_COMPILERS_DIR)

    ti.targets.msp430.elf.MSP430X ?= $(TI_INSTALLATION_DIR)/ti-cgt-msp430_4.4.6

    # note: there are two compiler directories in my ccs (ti) directory: (ti-cgt-msp430_4.4.5 and ti-cgt-msp430_4.4.6).

    ti.targets.arm.elf.M4F        ?= $(TI_INSTALLATION_DIR)/ti-cgt-arm_5.2.2

    Steve

  • Here's the echo of the variables.  They appear to be as set:

    $ gmake -f tirtos.mak rule


    c:/ti
    c:/ti/ccsv6/tools/compiler
    c:/ti/ccsv6/tools/compiler
    c:/ti/ccsv6/tools/compiler/ti-cgt-msp430_4.4.6
    c:/ti/ccsv6/tools/compiler/ti-cgt-arm_5.2.2

  • I suppose these could be mangled later on... where might the echo be placed in the make file prior to where the make fails?
  • Did you verify that the above paths are correct/valid?

    Steve
  • I verified that the paths are as they were set in the make file. Other than the improper path setting to the compiler, I make no further changes to the make file.
  • K1mgy,


    I'm still not clear if you know what I meant by checking those paths.  I mean, what happens if you tried to use them in a shell?  (or, pasted each one into a windows explorer address bar).  Would the path be valid?

    For example, I can try checking one of the paths on my machine in a shell:

    C:\Users\a0323418>ls c:/ti/ccsv6/tools/compiler
    ls: c:/ti/ccsv6/tools/compiler: No such file or directory
    
    C:\Users\a0323418>

    This is the type of test I meant.  By doing this, I know that this path is not actually valid.

    Please confirm that you did a similar test for each of the paths you printed above in your previous post.

    If any of those paths are not found, as in the above example, then it means the path settings in the makefile are incorrect, and the corresponding path would need to be fixed.

    Steve

  • OK.  You mean, "test each path specification to confirm that it exists on your file system".  The prior suggestions had me checking my make file to see if the constants set were expanding properly, which they were.

    The path c:/ti/ccsv6/tools/compiler/ti-cgt-arm_5.2.2  does not exist.

    In the compiler directory I have:

     Directory of c:\ti\ccsv6\tools\compiler

    10/22/2015  09:41    <DIR>          .
    10/22/2015  09:41    <DIR>          ..
    10/10/2015  11:48    <DIR>          dmed
    10/10/2015  11:44    <DIR>          ti-cgt-msp430_4.4.5
    10/22/2015  09:42    <DIR>          ti-cgt-msp430_4.4.6
                   0 File(s)              0 bytes
                   5 Dir(s)  144,504,549,376 bytes free

    As ti-cgt-arm_5.2.2 does not exist, it would be helpful if the Make file did a little checking up front which would have saved me (and I suspect others) a whole lot of misery. 

    ifeq (,$(ti.targets.arm.elf.M4F))
      $(error  Path ti.targets.arm.elf.M4F not found)
    endif

    Question is...why is it called out if not needed?  Or if it is needed, why did my ccs6 install plus install of TI-RTOS fail to create it?

    I have ccsv6, and TI-RTOS installed currently and my target is an MSP430F5659. 

    Thanks for your help.

  • Steve, some additional information.

    I installed the ARM compiler tools: ARM Compiler Tools 15.9.0 com.ti.cgt.tms470.15.win32.feature.group Texas Instruments (processors.wiki.ti.com/.../MCU_Compiler_v15)

    After this install, and adjusting ti.targets.arm.elf.M4F to ?= $(TI_INSTALLATION_DIR)/ti-cgt-arm_15.9.0.STS
    I still see the same error. I tested the file system. The location TI_INSTALLATION_DIR)/ti-cgt-arm_15.9.0.STS exists on my file system (windows 7).

    I don't see a mention on the page processors.wiki.ti.com/index.php/Creating_TI-RTOS_Projects_for_Other_MSP430_Devices concerning arm.

    What next?
  • Steve,

    Although I appreciate that there must be a tremendous workload, the slow pace of support for this (and there are two others) issue is becoming a problem for us.

    Can you give this your attention so we might find either a solution or determine that this RTOS might be best left to some other system?

  • I'm wondering if TI support is a myth. The delays in having a conversation are slowing progress to a dead stop.

    In my latest attempt, I uninstalled TI-RTOS through CCS, downloaded the command-line installer, and ran this outside of CCS. It installed fine. I then updated the make file, fixing a few path specifications, but did NOT add my target device (MSP430F5659). My goal was to see if installing this way would work. It did. The make process completed without an error.

    I then opened CCS, which told me there was a software update available for TI-RTOS. It showed me the same version just installed at the command-line, which seemed strange as the target directory is identical. Mistakenly, I installed it. CCS restarted and in the Application manager I saw that TI RTOS was still showing as not installed. So, I mistakenly installed it, CCS restarted, and then I closed CCS.

    Back at the command line, the make process now fails.

    Conclusion? Although the installer version of TI-RTOS is identical for the command-line and CCS versions, the CCS version may be broken.

    If there are any users reading this who have experienced the same issue, then TI should know about it and fix the CCS version.

    Here's the make output that failed:



    $ gmake -f tirtos.mak drivers
    gmake[1]: Entering directory `c:/ti/tirtos_msp43x_2_14_03_28/products/MSPWare_2_00_00_40c'
    gmake[2]: Entering directory `c:/ti/tirtos_msp43x_2_14_03_28/products/MSPWare_2_00_00_40c/driverlib'
    "Building for MSP430F5529 for the MSP430F5xx_6xx Family"
    gmake[3]: Entering directory `c:/ti/tirtos_msp43x_2_14_03_28/products/MSPWare_2_00_00_40c/driverlib'
    gmake[3]: Nothing to be done for `all'.
    gmake[3]: Leaving directory `c:/ti/tirtos_msp43x_2_14_03_28/products/MSPWare_2_00_00_40c/driverlib'
    "Building for MSP430FR5969 for the MSP430FR5xx_6xx Family"
    gmake[3]: Entering directory `c:/ti/tirtos_msp43x_2_14_03_28/products/MSPWare_2_00_00_40c/driverlib'
    gmake[3]: Nothing to be done for `all'.
    gmake[3]: Leaving directory `c:/ti/tirtos_msp43x_2_14_03_28/products/MSPWare_2_00_00_40c/driverlib'
    "Building for MSP430FR6989 for the MSP430FR5xx_6xx Family"
    gmake[3]: Entering directory `c:/ti/tirtos_msp43x_2_14_03_28/products/MSPWare_2_00_00_40c/driverlib'
    gmake[3]: Nothing to be done for `all'.
    gmake[3]: Leaving directory `c:/ti/tirtos_msp43x_2_14_03_28/products/MSPWare_2_00_00_40c/driverlib'
    gmake[2]: Leaving directory `c:/ti/tirtos_msp43x_2_14_03_28/products/MSPWare_2_00_00_40c/driverlib'
    gmake[1]: Leaving directory `c:/ti/tirtos_msp43x_2_14_03_28/products/MSPWare_2_00_00_40c'
    building tirtos packages ...
    making all: Fri Nov 6 08:46:27 EST 2015 ...
    ======== .interfaces [./packages/examples] ========
    making package.mak (because of .xdcenv.mak) ...
    generating interfaces for package examples (because package/package.xdc.inc is older than ) ...
    translating TrexExamples
    ======== .interfaces [./packages/examples/examplesgen] ========
    making package.mak (because of .xdcenv.mak) ...
    generating interfaces for package examples.examplesgen (because package/package.xdc.inc is older than ) ...
    translating Main
    ======== .interfaces [./packages/ti/drivers] ========
    making package.mak (because of .xdcenv.mak) ...
    js: "C:/TI/tirtos_msp43x_2_14_03_28/products/bios_6_42_03_35/packages/ti/targets/ITarget.xs", line 269: Error: c:/ti/ccsv6/tools/compiler/ti-cgt-msp430_4.4.3 cannot be found. Ensure that rootDir for the MSP430X target is set correctly in C:/TI/tirtos_msp43x_2_14_03_28/tirtos.bld
    gmake[1]: *** Deleting file `package.mak'
    making package.mak (because of package.bld) ...
    js: "C:/TI/tirtos_msp43x_2_14_03_28/products/bios_6_42_03_35/packages/ti/targets/ITarget.xs", line 269: Error: c:/ti/ccsv6/tools/compiler/ti-cgt-msp430_4.4.3 cannot be found. Ensure that rootDir for the MSP430X target is set correctly in C:/TI/tirtos_msp43x_2_14_03_28/tirtos.bld
    gmake[1]: *** Deleting file `package.mak'
    gmake[1]: *** No rule to make target `package.mak', needed by `.interfaces'. Stop.
    xdctools_3_31_01_33_core\gmake.exe: *** [packages/ti/drivers,.interfaces] Error 2
    gmake: *** [drivers] Error 2
  • So much for that try. Although the default devices build, when I add MSP430F5659 to the target specification in the make file, I see the same failure as before:

    K1MGY@K1MGY-PC C:\TI\tirtos_msp43x_2_14_03_28
    $ gmake -f tirtos.mak drivers
    gmake[1]: Entering directory `c:/ti/tirtos_msp43x_2_14_03_28/products/MSPWare_2_00_00_40c'
    gmake[2]: Entering directory `c:/ti/tirtos_msp43x_2_14_03_28/products/MSPWare_2_00_00_40c/driverlib'
    "Building for MSP430F5529 for the MSP430F5xx_6xx Family"
    gmake[3]: Entering directory `c:/ti/tirtos_msp43x_2_14_03_28/products/MSPWare_2_00_00_40c/driverlib'
    gmake[3]: Nothing to be done for `all'.
    gmake[3]: Leaving directory `c:/ti/tirtos_msp43x_2_14_03_28/products/MSPWare_2_00_00_40c/driverlib'
    "Building for MSP430FR5969 for the MSP430FR5xx_6xx Family"
    gmake[3]: Entering directory `c:/ti/tirtos_msp43x_2_14_03_28/products/MSPWare_2_00_00_40c/driverlib'
    gmake[3]: Nothing to be done for `all'.
    gmake[3]: Leaving directory `c:/ti/tirtos_msp43x_2_14_03_28/products/MSPWare_2_00_00_40c/driverlib'
    "Building for MSP430FR6989 for the MSP430FR5xx_6xx Family"
    gmake[3]: Entering directory `c:/ti/tirtos_msp43x_2_14_03_28/products/MSPWare_2_00_00_40c/driverlib'
    gmake[3]: Nothing to be done for `all'.
    gmake[3]: Leaving directory `c:/ti/tirtos_msp43x_2_14_03_28/products/MSPWare_2_00_00_40c/driverlib'
    "Building for MSP430F5659 for the MSP430F5xx_6xx Family"
    gmake[3]: Entering directory `c:/ti/tirtos_msp43x_2_14_03_28/products/MSPWare_2_00_00_40c/driverlib'
    CC MSP430F5xx_6xx/adc10_a.c
    CC MSP430F5xx_6xx/adc12_a.c
    CC MSP430F5xx_6xx/aes.c
    CC MSP430F5xx_6xx/battbak.c
    CC MSP430F5xx_6xx/comp_b.c
    CC MSP430F5xx_6xx/crc.c
    CC MSP430F5xx_6xx/dac12_a.c
    CC MSP430F5xx_6xx/dma.c
    CC MSP430F5xx_6xx/eusci_a_spi.c
    CC MSP430F5xx_6xx/eusci_a_uart.c
    CC MSP430F5xx_6xx/eusci_b_i2c.c
    CC MSP430F5xx_6xx/eusci_b_spi.c
    CC MSP430F5xx_6xx/flashctl.c
    CC MSP430F5xx_6xx/gpio.c
    CC MSP430F5xx_6xx/ldopwr.c
    CC MSP430F5xx_6xx/mpy32.c
    CC MSP430F5xx_6xx/pmap.c
    CC MSP430F5xx_6xx/pmm.c
    CC MSP430F5xx_6xx/ram.c
    CC MSP430F5xx_6xx/ref.c
    CC MSP430F5xx_6xx/rtc_a.c
    CC MSP430F5xx_6xx/rtc_b.c
    CC MSP430F5xx_6xx/rtc_c.c
    CC MSP430F5xx_6xx/sd24_b.c
    CC MSP430F5xx_6xx/sfr.c
    CC MSP430F5xx_6xx/sysctl.c
    CC MSP430F5xx_6xx/tec.c
    CC MSP430F5xx_6xx/timer_a.c
    CC MSP430F5xx_6xx/timer_b.c
    CC MSP430F5xx_6xx/timer_d.c
    CC MSP430F5xx_6xx/tlv.c
    CC MSP430F5xx_6xx/ucs.c
    CC MSP430F5xx_6xx/usci_a_spi.c
    CC MSP430F5xx_6xx/usci_a_uart.c
    CC MSP430F5xx_6xx/usci_b_i2c.c
    CC MSP430F5xx_6xx/usci_b_spi.c
    CC MSP430F5xx_6xx/wdt_a.c
    AR ccs-MSP430F5659/adc10_a.obj
    ==> new archive 'ccs-MSP430F5659/ccs-MSP430F5659.lib'
    ==> building archive 'ccs-MSP430F5659/ccs-MSP430F5659.lib'
    gmake[3]: Leaving directory `c:/ti/tirtos_msp43x_2_14_03_28/products/MSPWare_2_00_00_40c/driverlib'
    gmake[2]: Leaving directory `c:/ti/tirtos_msp43x_2_14_03_28/products/MSPWare_2_00_00_40c/driverlib'
    gmake[1]: Leaving directory `c:/ti/tirtos_msp43x_2_14_03_28/products/MSPWare_2_00_00_40c'
    building tirtos packages ...
    making all: Fri Nov 6 09:26:46 EST 2015 ...
    ======== .interfaces [./packages/examples] ========
    making package.mak (because of .xdcenv.mak) ...
    Warning: Target specification 'native' does not match any loaded target module.
    No target modules were loaded.

    ======== .interfaces [./packages/examples/examplesgen] ========
    making package.mak (because of .xdcenv.mak) ...
    Warning: Target specification 'native' does not match any loaded target module.
    No target modules were loaded.

    ======== .interfaces [./packages/ti/drivers] ========
    making package.mak (because of .xdcenv.mak) ...
    Warning: Target specification 'native' does not match any loaded target module.
    No target modules were loaded.

    js: "./package.bld", line 321: TypeError: Cannot read property "length" from undefined
    gmake[1]: *** Deleting file `package.mak'
    making package.mak (because of package.bld) ...
    Warning: Target specification 'native' does not match any loaded target module.
    No target modules were loaded.

    js: "./package.bld", line 321: TypeError: Cannot read property "length" from undefined
    gmake[1]: *** Deleting file `package.mak'
    gmake[1]: *** No rule to make target `package.mak', needed by `.interfaces'. Stop.
    xdctools_3_31_01_33_core\gmake.exe: *** [packages/ti/drivers,.interfaces] Error 2
    gmake: *** [drivers] Error 2
  • Hi K1mgy,

    Sorry that your post fell through the cracks.  I usually install TI-RTOS with the command-line installer, so I haven't seen the issue with the CCS installer that you reported (what version of CCS?).

    For your build error:

        Error: c:/ti/ccsv6/tools/compiler/ti-cgt-msp430_4.4.3 cannot be found.

    it looks like you don't have a directory:

        c:/ti/ccsv6/tools/compiler/ti-cgt-msp430_4.4.3

    In an earlier post, you mentioned that you have 4.4.5, and 4.4.6 msp430 tools.  You probably just need to change the tools version in tirtos.mak from:

        ti.targets.msp430.elf.MSP430X ?= $(TI_INSTALLATION_DIR)/ti-cgt-msp430_4.4.3

    to

        ti.targets.msp430.elf.MSP430X ?= $(TI_INSTALLATION_DIR)/ti-cgt-msp430_4.4.5 (or 4.4.6)

    Best regards,

        Janet

  • Janet, that's an older error.

    See my latest posting which describes the failure presently.

    Yes, I have already fixed the make file and the ti-cgt line is set as ti.targets.msp430.elf.MSP430X ?= $(TI_INSTALLATION_DIR)/ti-cgt-msp430_4.4.6

    Note the I was able to get make to complete, but only if I keep the targets unchanged.  When I added MSP430F5659 the build breaks.

    Below is the relevant snippet of the Make file.  See my post of this morning which describes the error.

    I think there's a dependency needed for the F5659 but I have no clue what it is.


    # Set location of various cgtools
    #
    # These variables can be set here or on the command line.  Paths must not
    # have spaces.  If using a Windows PC, the following command can be used to
    # determine the a directory's DOS path (path without spaces):
    #
    #     > for %I in ("path") do echo %~sI
    #
    # IAR Workbench example:
    #     Path:        c:\Program Files (x86)\IAR Systems\Embedded Workbench 7.2
    #     DOS Path:    c:\PROGRA~2\IARSYS~1\EMBEDD~1.2
    #
    DEFAULT_INSTALLATION_DIR ?= c:/ti
    CCS_COMPILERS_DIR        ?= $(DEFAULT_INSTALLATION_DIR)/ccsv6/tools/compiler

    #
    # Enable TI-RTOS to build for CCS.
    # Set CCS_BUILD to true and modify path to toolchain
    #
    CCS_BUILD ?= true
    TI_INSTALLATION_DIR           ?= $(CCS_COMPILERS_DIR)
    ti.targets.msp430.elf.MSP430X ?= $(TI_INSTALLATION_DIR)/ti-cgt-msp430_4.4.6
    ti.targets.arm.elf.M4F        ?= $(TI_INSTALLATION_DIR)/ti-cgt-arm_15.9.0.STS

    #
    # Enable TI-RTOS to build for IAR.
    # Set IAR_BUILD to true and modify path to toolchain.
    #
    # The IAR_MSP430/ARM_INSTALLATION_DIR must be set to point to the
    # "Embedded Workbench x.y" directory in IAR Workbench.  This path MUST NOT
    # contain spaces.  If using a Windows PC, see the comments above for steps to
    # get the DOS path for a directory.
    #
    IAR_BUILD ?= false
    IAR_MSP430_INSTALLATION_DIR      ?= c:/iar
    iar.targets.msp430.MSP430X_small ?= $(IAR_MSP430_INSTALLATION_DIR)/430
    IAR_MSP430HEADERS                ?= $(IAR_MSP430_INSTALLATION_DIR)/430/inc

    IAR_ARM_INSTALLATION_DIR         ?= c:/iar
    iar.targets.arm.M4F              ?= $(IAR_ARM_INSTALLATION_DIR)/arm
    IAR_MSP432HEADERS                ?= $(IAR_ARM_INSTALLATION_DIR)/arm/inc/TexasInstruments

    #
    # Enable TI-RTOS to build for GCC.
    # Set GCC_BUILD to true and modify path to toolchain
    #
    GCC_BUILD ?= false
    GCC_INSTALLATION_DIR ?= $(CCS_COMPILERS_DIR)
    gnu.targets.arm.M4F  ?= $(GCC_INSTALLATION_DIR)/gcc-arm-none-eabi-4_8-2014q3

    #
    # Enable TI-RTOS to build for MSP430/MSP432 devices.
    # Set MSP430_BUILD or MSP432_BUILD to false to skip building TI-RTOS for the
    # respective device family.
    #
    MSP430_BUILD ?= true
    MSP432_BUILD ?= true

    #
    # TI-RTOS and XDCTools settings
    #
    XDCTOOLS_INSTALLATION_DIR ?= $(DEFAULT_INSTALLATION_DIR)/xdctools_3_31_01_33_core
    export XDCTOOLS_JAVA_HOME ?= $(DEFAULT_INSTALLATION_DIR)/ccsv6/eclipse/jre

    TIRTOS_INSTALLATION_VER   ?= tirtos_msp43x_2_14_03_28
    TIRTOS_INSTALLATION_DIR   ?= $(DEFAULT_INSTALLATION_DIR)/$(TIRTOS_INSTALLATION_VER)
    BIOS_INSTALLATION_DIR     ?= $(TIRTOS_INSTALLATION_DIR)/products/bios_6_42_03_35
    UIA_INSTALLATION_DIR      ?= $(TIRTOS_INSTALLATION_DIR)/products/uia_2_00_02_39
    MSPWARE_INSTALLATION_DIR  ?= $(TIRTOS_INSTALLATION_DIR)/products/MSPWare_2_00_00_40c
    MSP430HEADERS             ?= $(DEFAULT_INSTALLATION_DIR)/ccsv6/ccs_base/msp430/include
    MSP432HEADERS             ?= $(DEFAULT_INSTALLATION_DIR)/ccsv6/ccs_base/arm/include

    #
    # To build TI-RTOS driver libraries for other MSP430 devices; simply append the
    # device names to MSP430DEVLIST (separated by commas)
    # MSP430DEVLIST := MSP430F5529,MSP430F5527,MSP430F6459,etc...
    #
    MSP430DEVLIST := MSP430F5529,MSP430FR5969,MSP430FR6989, MSP430F5659

    #
    # To build TI-RTOS driver libraries for other MSP432 devices; simply append the
    # device names to MSP432DEVLIST (separated by commas)
    # MSP432DEVLIST := MSP432P401R,etc...
    #
    MSP432DEVLIST := MSP432P401R

    #

  • Hi K1mgy,
    Somehow I missed your later post. Just to clarify, was the error the following:

    ======== .interfaces [./packages/ti/drivers] ========
    making package.mak (because of .xdcenv.mak) ...
    Warning: Target specification 'native' does not match any loaded target module.
    No target modules were loaded.

    js: "./package.bld", line 321: TypeError: Cannot read property "length" from undefined
    gmake[1]: *** Deleting file `package.mak'
    making package.mak (because of package.bld) ...
    Warning: Target specification 'native' does not match any loaded target module.
    No target modules were loaded.

    js: "./package.bld", line 321: TypeError: Cannot read property "length" from undefined
    gmake[1]: *** Deleting file `package.mak'
    gmake[1]: *** No rule to make target `package.mak', needed by `.interfaces'. Stop.
    xdctools_3_31_01_33_core\gmake.exe: *** [packages/ti/drivers,.interfaces] Error 2
    gmake: *** [drivers] Error 2

    Thanks,
    Janet
  • Hi K1mgy,
    Could you please attach your tirtos.mak as an attachment so I can try it out?
    Thanks,
    Janet
  • No option to attach. The entire file follows:

    #
    # ======== tirtos.mak ========
    #

    #
    # Set location of various cgtools
    #
    # These variables can be set here or on the command line. Paths must not
    # have spaces. If using a Windows PC, the following command can be used to
    # determine the a directory's DOS path (path without spaces):
    #
    # > for %I in ("path") do echo %~sI
    #
    # IAR Workbench example:
    # Path: c:\Program Files (x86)\IAR Systems\Embedded Workbench 7.2
    # DOS Path: c:\PROGRA~2\IARSYS~1\EMBEDD~1.2
    #
    DEFAULT_INSTALLATION_DIR ?= c:/ti
    CCS_COMPILERS_DIR ?= $(DEFAULT_INSTALLATION_DIR)/ccsv6/tools/compiler

    #
    # Enable TI-RTOS to build for CCS.
    # Set CCS_BUILD to true and modify path to toolchain
    #
    CCS_BUILD ?= true
    TI_INSTALLATION_DIR ?= $(CCS_COMPILERS_DIR)
    ti.targets.msp430.elf.MSP430X ?= $(TI_INSTALLATION_DIR)/ti-cgt-msp430_4.4.6
    ti.targets.arm.elf.M4F ?= $(TI_INSTALLATION_DIR)/ti-cgt-arm_15.9.0.STS

    #
    # Enable TI-RTOS to build for IAR.
    # Set IAR_BUILD to true and modify path to toolchain.
    #
    # The IAR_MSP430/ARM_INSTALLATION_DIR must be set to point to the
    # "Embedded Workbench x.y" directory in IAR Workbench. This path MUST NOT
    # contain spaces. If using a Windows PC, see the comments above for steps to
    # get the DOS path for a directory.
    #
    IAR_BUILD ?= false
    IAR_MSP430_INSTALLATION_DIR ?= c:/iar
    iar.targets.msp430.MSP430X_small ?= $(IAR_MSP430_INSTALLATION_DIR)/430
    IAR_MSP430HEADERS ?= $(IAR_MSP430_INSTALLATION_DIR)/430/inc

    IAR_ARM_INSTALLATION_DIR ?= c:/iar
    iar.targets.arm.M4F ?= $(IAR_ARM_INSTALLATION_DIR)/arm
    IAR_MSP432HEADERS ?= $(IAR_ARM_INSTALLATION_DIR)/arm/inc/TexasInstruments

    #
    # Enable TI-RTOS to build for GCC.
    # Set GCC_BUILD to true and modify path to toolchain
    #
    GCC_BUILD ?= false
    GCC_INSTALLATION_DIR ?= $(CCS_COMPILERS_DIR)
    gnu.targets.arm.M4F ?= $(GCC_INSTALLATION_DIR)/gcc-arm-none-eabi-4_8-2014q3

    #
    # Enable TI-RTOS to build for MSP430/MSP432 devices.
    # Set MSP430_BUILD or MSP432_BUILD to false to skip building TI-RTOS for the
    # respective device family.
    #
    MSP430_BUILD ?= true
    MSP432_BUILD ?= true

    #
    # TI-RTOS and XDCTools settings
    #
    XDCTOOLS_INSTALLATION_DIR ?= $(DEFAULT_INSTALLATION_DIR)/xdctools_3_31_01_33_core
    export XDCTOOLS_JAVA_HOME ?= $(DEFAULT_INSTALLATION_DIR)/ccsv6/eclipse/jre

    TIRTOS_INSTALLATION_VER ?= tirtos_msp43x_2_14_03_28
    TIRTOS_INSTALLATION_DIR ?= $(DEFAULT_INSTALLATION_DIR)/$(TIRTOS_INSTALLATION_VER)
    BIOS_INSTALLATION_DIR ?= $(TIRTOS_INSTALLATION_DIR)/products/bios_6_42_03_35
    UIA_INSTALLATION_DIR ?= $(TIRTOS_INSTALLATION_DIR)/products/uia_2_00_02_39
    MSPWARE_INSTALLATION_DIR ?= $(TIRTOS_INSTALLATION_DIR)/products/MSPWare_2_00_00_40c
    MSP430HEADERS ?= $(DEFAULT_INSTALLATION_DIR)/ccsv6/ccs_base/msp430/include
    MSP432HEADERS ?= $(DEFAULT_INSTALLATION_DIR)/ccsv6/ccs_base/arm/include

    #
    # To build TI-RTOS driver libraries for other MSP430 devices; simply append the
    # device names to MSP430DEVLIST (separated by commas)
    # MSP430DEVLIST := MSP430F5529,MSP430F5527,MSP430F6459,etc...
    #
    MSP430DEVLIST := MSP430F5529,MSP430FR5969,MSP430FR6989, MSP430F5659

    #
    # To build TI-RTOS driver libraries for other MSP432 devices; simply append the
    # device names to MSP432DEVLIST (separated by commas)
    # MSP432DEVLIST := MSP432P401R,etc...
    #
    MSP432DEVLIST := MSP432P401R

    #
    # Set XDCARGS to some of the variables above. XDCARGS are passed
    # to the XDC build engine... which will load tirtos.bld... which will
    # extract these variables and use them to determine what to build and which
    # toolchains to use.
    #
    # Note that not all of these variables need to be set to something valid.
    # Unfortunately, since these vars are unconditionally assigned, your build line
    # will be longer and more noisy than necessary (e.g., it will include CC_V5T
    # assignment even if you're just building for C64P).
    #
    # Some background is here:
    # rtsc.eclipse.org/.../Command_-_xdc
    #
    XDCARGS = \
    profile=release \
    XDCTOOLS=$(XDCTOOLS_INSTALLATION_DIR) \
    TIRTOS=$(TIRTOS_INSTALLATION_DIR) \
    BIOS=$(BIOS_INSTALLATION_DIR) \
    UIA=$(UIA_INSTALLATION_DIR) \
    MSPWARE=$(MSPWARE_INSTALLATION_DIR) \
    MSP430DEVLIST="$(MSP430DEVLIST)" \
    MSP432DEVLIST="$(MSP432DEVLIST)"

    ifeq ("$(CCS_BUILD)", "true")
    ifeq ("$(MSP430_BUILD)", "true")
    XDCARGS += \
    ti.targets.msp430.elf.MSP430X=$(ti.targets.msp430.elf.MSP430X) \
    MSP430HEADERS=$(MSP430HEADERS)
    allmsp430ware += msp430ware
    endif
    ifeq ("$(MSP432_BUILD)", "true")
    XDCARGS += \
    ti.targets.arm.elf.M4F=$(ti.targets.arm.elf.M4F) \
    MSP432HEADERS=$(MSP432HEADERS)
    endif
    endif

    ifeq ("$(IAR_BUILD)", "true")
    ifeq ("$(MSP430_BUILD)", "true")
    XDCARGS += \
    iar.targets.msp430.MSP430X_small=$(iar.targets.msp430.MSP430X_small) \
    IAR_MSP430HEADERS=$(IAR_MSP430HEADERS)
    allmsp430ware += iar-msp430ware
    endif
    ifeq ("$(MSP432_BUILD)", "true")
    XDCARGS += \
    iar.targets.arm.M4F=$(iar.targets.arm.M4F) \
    IAR_MSP432HEADERS=$(IAR_MSP432HEADERS)
    endif
    endif

    ifeq ("$(GCC_BUILD)", "true")
    XDCARGS += \
    gnu.targets.arm.M4F=$(gnu.targets.arm.M4F) \
    MSP432HEADERS=$(MSP432HEADERS)
    endif

    export XDCARGS

    #
    # Set XDCPATH to contain necessary repositories.
    #
    XDCPATH = $(TIRTOS_INSTALLATION_DIR)/packages;$(BIOS_INSTALLATION_DIR)/packages;$(UIA_INSTALLATION_DIR)/packages;
    export XDCPATH

    #
    # Set XDCOPTIONS. Use -v for a verbose build.
    #
    #XDCOPTIONS=v
    export XDCOPTIONS

    #
    # Set XDC executable command
    # Note that XDCBUILDCFG points to the tirtos.bld file which uses
    # the arguments specified by XDCARGS
    #
    XDC = $(XDCTOOLS_INSTALLATION_DIR)/xdc XDCARGS="$(XDCARGS)" XDCBUILDCFG=./tirtos.bld
    XS = $(XDCTOOLS_INSTALLATION_DIR)/xs

    #######################################################
    ## Shouldn't have to modify anything below this line ##
    #######################################################

    help:
    @ echo Makefile to build components within TI-RTOS
    @ echo goal description
    @ echo -----------------------------------------------------------------------------
    @ echo all Builds SYS/BIOS, UIA, and TI-RTOS drivers
    @ echo drivers Builds TI-RTOS drivers and other components in /packages
    @ echo bios Builds SYS/BIOS
    @ echo uia Builds UIA
    @ echo msp430ware Builds MSP430Ware CCS libraries
    @ echo iar-msp430ware Builds MSP430Ware IAR libraries
    @ echo clean Cleans SYS/BIOS, UIA, and TI-RTOS drivers
    @ echo clean-drivers Cleans TI-RTOS drivers and other components in /packages
    @ echo clean-bios Cleans SYS/BIOS
    @ echo clean-uia Cleans UIA
    @ echo clean-msp430ware Cleans MSP430Ware libraries
    @ echo examplesgen Generates TI-RTOS examples and makefiles
    @ echo help Displays this description

    all: bios uia drivers

    clean: clean-uia clean-drivers clean-bios

    drivers: $(allmsp430ware)
    @ echo building tirtos packages ...
    @ $(XDC) -Pr ./packages

    clean-drivers: clean-msp430ware
    @ echo cleaning tirtos packages ...
    @ $(XDC) clean -Pr ./packages

    bios:
    @ echo building bios ...
    @ $(XDCTOOLS_INSTALLATION_DIR)/gmake -f $(BIOS_INSTALLATION_DIR)/bios.mak \
    XDC_INSTALL_DIR=$(XDCTOOLS_INSTALLATION_DIR) \
    BIOS_SMPENABLED=0 \
    $(XDCARGS) -C $(BIOS_INSTALLATION_DIR)

    clean-bios:
    @ echo cleaning bios ...
    @ $(XDCTOOLS_INSTALLATION_DIR)/gmake -f $(BIOS_INSTALLATION_DIR)/bios.mak \
    XDC_INSTALL_DIR=$(XDCTOOLS_INSTALLATION_DIR) \
    BIOS_SMPENABLED=0 \
    -C $(BIOS_INSTALLATION_DIR) clean

    uia:
    @ echo building uia ...
    @ $(XDCTOOLS_INSTALLATION_DIR)/gmake -f $(UIA_INSTALLATION_DIR)/uia.mak \
    XDC_INSTALL_DIR=$(XDCTOOLS_INSTALLATION_DIR) \
    BIOS_INSTALL_DIR=$(BIOS_INSTALLATION_DIR) \
    $(XDCARGS) -C $(UIA_INSTALLATION_DIR)

    clean-uia:
    @ echo cleaning uia ...
    @ $(XDCTOOLS_INSTALLATION_DIR)/gmake -f $(UIA_INSTALLATION_DIR)/uia.mak \
    XDC_INSTALL_DIR=$(XDCTOOLS_INSTALLATION_DIR) \
    BIOS_INSTALL_DIR=$(BIOS_INSTALLATION_DIR) \
    -C $(UIA_INSTALLATION_DIR) clean

    msp430ware:
    @ $(MAKE) -C $(MSPWARE_INSTALLATION_DIR) PARTS='$(MSP430DEVLIST)' IPATH='$(MSP430HEADERS)' COMPILER=ccs TOOLPATH='$(ti.targets.msp430.elf.MSP430X)'

    iar-msp430ware:
    @ $(MAKE) -C $(MSPWARE_INSTALLATION_DIR) PARTS='$(MSP430DEVLIST)' IPATH='$(IAR_MSP430HEADERS)' COMPILER=iar TOOLPATH='$(iar.targets.msp430.MSP430X_small)'

    clean-msp430ware:
    @ $(MAKE) -C $(MSPWARE_INSTALLATION_DIR) clean

    validate-paths:
    ifneq (1, $(words $(ti.targets.msp430.elf.MSP430X)))
    $(error Toolchain path must not have spaces, please update the TI_INSTALLATION_DIR variable.)
    endif

    ifneq (1, $(words $(iar.targets.msp430.MSP430X_small)))
    $(error Toolchain path must not have spaces, please update the IAR_MSP430_INSTALLATION_DIR variable.)
    endif

    ifneq (1, $(words $(iar.targets.arm.M4F)))
    $(error Toolchain path must not have spaces, please update the IAR_ARM_INSTALLATION_DIR variable.)
    endif

    ifneq (1, $(words $(gnu.targets.arm.M4F)))
    $(error Toolchain path must not have spaces, please update the GCC_INSTALLATION_DIR variable.)
    endif

    examplesgen: validate-paths
    ifneq ("$(DEST)","")
    @ echo generating examples in $(DEST) ...
    ifeq ("$(CCS_BUILD)", "true")
    @ $(XS) examples.examplesgen \
    --productGroup="MSP430" \
    --toolchain="TI" \
    --toolchainDir="$(ti.targets.msp430.elf.MSP430X)" \
    --deviceFamily="MSP430" \
    --output="$(DEST)/$(TIRTOS_INSTALLATION_VER)_examples/MSP430"

    @ $(XS) examples.examplesgen \
    --productGroup="MSP430" \
    --toolchain="TI" \
    --toolchainDir="$(ti.targets.arm.elf.M4F)" \
    --deviceFamily="MSP432" \
    --output="$(DEST)/$(TIRTOS_INSTALLATION_VER)_examples/MSP432"
    endif

    ifeq ("$(IAR_BUILD)", "true")
    @ $(XS) examples.examplesgen \
    --productGroup="MSP430" \
    --toolchain="IAR" \
    --toolchainDir="$(iar.targets.msp430.MSP430X_small)" \
    --deviceFamily="MSP430" \
    --output="$(DEST)/$(TIRTOS_INSTALLATION_VER)_examples/MSP430"

    @ $(XS) examples.examplesgen \
    --productGroup="MSP430" \
    --toolchain="IAR" \
    --toolchainDir="$(iar.targets.arm.M4F)" \
    --deviceFamily="MSP432" \
    --output="$(DEST)/$(TIRTOS_INSTALLATION_VER)_examples/MSP432"
    endif

    ifeq ("$(GCC_BUILD)", "true")
    @ $(XS) examples.examplesgen \
    --productGroup="MSP430" \
    --toolchain="GNU" \
    --toolchainDir="$(gnu.targets.arm.M4F)" \
    --deviceFamily="MSP432" \
    --output="$(DEST)/$(TIRTOS_INSTALLATION_VER)_examples/MSP432"
    endif

    @ echo ***********************************************************
    @ echo Please refer to "Examples for TI-RTOS" section in the TI-RTOS
    @ echo "Getting Started Guide" for details on how to build and load the examples
    @ echo into IAR WorkBench and CCS.
    else
    @ echo Specify destination path like this: DEST="YOURPATH". Use UNIX style path "C:/examples"
    endif
  • Hi K1mgy,
    That is unfortunate that the file can't be attached. Sometimes there are spaces or other whitespace that I can't see in the post. I tried adding a space after MSP430F5659 and then building. I got a very similar error:

    js: "./package.bld", line 321: TypeError: Cannot read property "length" from undefined
    gmake[1]: *** Deleting file `package.mak'
    gmake[1]: *** No rule to make target `package.mak', needed by `.interfaces'. Stop.
    xdctools_3_31_01_33_core\gmake.exe: *** [packages/ti/drivers,.interfaces] Error2
    gmake: *** [drivers] Error 2

    Could you double-check your tirtos.mak for extra spaces in the MSP430DEVLIST?
    Thanks,
    Janet
  • Holy crow!

    Yes, that was it.

    You're brilliant!
  • Great! I'm glad that solved the problem. You have probably seen this link already, but in case not, I'll post it.

    processors.wiki.ti.com/.../Creating_TI-RTOS_Projects_for_Other_MSP430_Devices

    Best regards,
    Janet