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.

CCS/MSP-EXP430F5529LP: INTERNAL ERROR: Decomposition error when compiling a new project made up of two files

Part Number: MSP-EXP430F5529LP
Other Parts Discussed in Thread: MSP430F5529

Tool/software: Code Composer Studio

Got this error. Odd thing is that I've compiled this same file in other projects and it's worked fine. I created a new project from scratch with just the offending file and was able to duplicate the error.

CCS Version: 6.1.1.00022

Steps to reproduce:

1. Create new MSP430F5529 project, with main.c

2. In project hierarchy, create new directory named "Common"

3. Copy my custom printf.c and printf.h into this directory in the file system

4. Attempt build. It fails with the error below.

Zip file containing the CCS project is attached.

8877.BTBP.zip


**** Build of configuration Debug for project BTBP ****

"C:\\ti\\ccsv6\\utils\\bin\\gmake" -k all
'Building file: ../Common/printf.c'
'Invoking: MSP430 Compiler'
"C:/ti/ccsv6/tools/compiler/ti-cgt-msp430_4.4.5/bin/cl430" -vmspx --abi=eabi --data_model=restricted --use_hw_mpy=F5 --include_path="C:/ti/ccsv6/ccs_base/msp430/include" --include_path="C:/ti/ccsv6/tools/compiler/ti-cgt-msp430_4.4.5/include" --advice:power=all -g --define=__MSP430F5529__ --define=MSP_EXP430F5529LP_BTBP --diag_warning=225 --display_error_number --diag_wrap=off --silicon_errata=CPU21 --silicon_errata=CPU22 --silicon_errata=CPU23 --silicon_errata=CPU40 --printf_support=minimal --preproc_with_compile --preproc_dependency="Common/printf.pp" --obj_directory="Common" "../Common/printf.c"
>> ../Common/printf.c, line 126: INTERNAL ERROR: Decomposition error

  • I can reproduce the error with that version of the MSP430 compiler. I checked that the issue is fixed in several newer versions of the compiler tools, so you have a couple of options. 

    If you wish to stick with CCS 6.1.1, you can update to the latest compiler on the 4.4.x stream, which is 4.4.8. To get this version, go to menu Help->Check for Updates. In the list, select just the MSP430 Compiler v4.4.8 and install it. Then go into the Project Properties and select 4.4.8 for the Compiler Version and rebuild.

    If you are willing to update your entire CCS (which I would recommend unless you have a compelling reason to stay on 6.1.1), you can get the latest version (7.2 was just released) from this page. This comes with a much newer version of the compiler tools that should also not exhibit this error.

  • Thanks, I downloaded and installed the CCS v7.2, and also realized I was holding on to an old way of doing printf() from when we were using tinier MSP430s. So I also took some time to figure out how to get built-in printf() working. That was more work than it takes in IAR, but now it works. I recommend including a Hello World example (with UART output) with all new processors, or at least make one for every LaunchPad.

    BTW, this page needs to be updated. The printf/scanf support required option is now in MSP430 Compiler : Advanced Options : Language Options.
    processors.wiki.ti.com/.../Printf_support_for_MSP430_CCSTUDIO_compiler

    Finally, in CCS7, the New Project : Hello World option doesn't actually make a useful Hello World example. I'm using an MSP430F5529 Launchpad. When using this wizard I expected a Hello World that would work.

  • Derek9531 said:
    BTW, this page needs to be updated. The printf/scanf support required option is now in MSP430 Compiler : Advanced Options : Language Options.
    processors.wiki.ti.com/.../Printf_support_for_MSP430_CCSTUDIO_compiler

    Thank you for the feedback. That page was written for CCSv5 and all screenshots on that page pertain to that version. I have updated it with a screenshot of the printf option setting in CCSv7.

    Derek9531 said:
    Finally, in CCS7, the New Project : Hello World option doesn't actually make a useful Hello World example. I'm using an MSP430F5529 Launchpad. When using this wizard I expected a Hello World that would work.

    The Hello World example does work with a MSP430F5529 Launchpad in that it prints Hello World to the CCS debug console, not through UART. Examples with UART output, if any, would typically come from the MSPWare software packages.