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.

How to move from Fixed Point Math to Floating Point Math on the Motorware Sample Projects?

Other Parts Discussed in Thread: MOTORWARE

Hi everyone,

I'm currently working with both the  Piccolo F2806xF and DRV8305N. I'm trying to take the example project lab11a and switch to using floating point math (fpu32), but I'm getting this error when I attempt to build the project:


fatal error #16008: file "/db/lang/msp/exec/rts430x.lib<boot.obj>" specifies ISA revision "MSPX", which is not compatible with ISA revision "MSP" specified in a previous file or on the command line

I changed the properties of lab11a (Feature Rich Example without Controller Module) to match those of lab2d (FPU32 enabled).

Any ideas as to what could be going on? Is there a better way to go about doing this?

Thank you,
Aadu

  • Aadithya Prakash said:
    fatal error #16008: file "/db/lang/msp/exec/rts430x.lib<boot.obj>" specifies ISA revision "MSPX", which is not compatible with ISA revision "MSP" specified in a previous file or on the command line

    This is an MPS430 library whereas the Piccolo is a C2000 device.   This is why the error is happening.

    Aadithya Prakash said:
    I'm currently working with both the  Piccolo F2806xF and DRV8305N. I'm trying to take the example project lab11a and switch to using floating point math (fpu32), but I'm getting this error when I attempt to build the project:

    I first need to check to see if this is supported.  I will follow-up.

    -Lori

  • note that the InstaSPIN library in ROM is not in floating point. It is in IQmath.

    1. If you want to use floating point in the rest of the project you have to follow one of the FPU projects (like 2d or 10c) for having the libraries linked in the correct order. The order is important.

    2. you will also need to update any variable "EST_get" functions to handle the float. Notice the difference between proj_lab10a.c and 10c.c in the function:
    updateGlobalVariables_motor

    // when calling EST_ functions that return a float, and fpu32 is enabled, an integer is needed as a return
    // so that the compiler reads the returned value from the accumulator instead of fpu32 registers
    // get the magnetizing current

    As Lori mentioned something else is going on where you have an MSP430 file referenced in your project.
  • Chris and Lori,

    Thanks for the quick responses. I believe I have followed the linking order correctly, based on projects 2d and 10c ( Properties > Build > Link Order).

    I can change the EST_get functions as well, but I think the current problem is this MSP430 file. I'm not entirely sure how it has been included. The problem only appeared after I started modifying the Properties of the Project (I think when I switched from the rts2800_ml.lib to rts2800_fpu32.lib).

    Thoughts?

    -Aadu

  • you must have chosen a different property which included this file.
    see if you can find it, even if it's in the .proj file itself and remove from the file / path
  • The error occurs when I change the runtime support library (to rts2800_fpu32.lib from rts2800_ml.lib). For some reason I see the error for rts430x.lib... which is not making much sense to me.
  • me either. that file doesn't exist in MotorWare so it must have been added by CCS somehow.

    not sure how much work you have done on the project, but you can try reimporting and going through the link order steps again.
  • Aadithya,

    I wanted to check if the problem still exists?

    Regards
    Lori