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.

What is the difference between msp and mspx silicon version in CCS

Other Parts Discussed in Thread: MSP430F2410

I want to know the difference between msp and mspx silicon version in ccs.

I can see msp and mspx silicon version in CCS Properties->CCS Build->MSP430Compiler ->Processor options->Silicon version.

I am using msp430f2410 and ccs 6.0

When i set to msp the code size is 51K  and when change to mspx code size  is reduced to 50K, more than 1KB is reduced.

But when i flash the code (WDT firing is ON) msp version is working as expected but mspx version is not coming to main() function.

It stays in copy_zero_init.c compiler library file forever and it doesn't come to main().

In both the cases my code memory and data memory model is small.

I need to know what is the difference between the two and how i can solve mspx issue to use reduced code size?

  • Hi Vinoth,

    You can find more details in CCS Compiler UG (http://www.ti.com/lit/ug/slau132j/slau132j.pdf) but the -mspx option is used for devices with the CPUX core which supports 20-bit addressing.

    I'm not really sure of the reason of the difference in code size or why the code is getting stuck, but perhaps the device is executing an invalid instruction.

    Regards,
    Luis R
  • I think MSP430F2410 has only 16-bit address and can only execute MSP430 code (as oppose to MSP430X code).
  • Even if code only uses 16 bit address range (small code/data model) on MSPX CPUs, knowing that the CPU has a MSPX core allows the compiler to use some advanced instructions that do not relate to 20 bit use. Such as the PUSHX/POPX, where one instruction can push/pop multiple (subsequent) registers to/from stack, or the instructions that can shift up to four bits with one command (and one clock cycle). This may significantly reduce code execution time and also code size. If the CPU has no MSPX core, then these instructions are not available (or you don't want them used)

    As OCY stated, the F2410 does not have an MSPX core. Setting the mspx option will cause the compiler to generate instructions the CPU does not know an will in most cases simply ignore. The outcome is unknown.

**Attention** This is a public forum