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.

Warning: CPU is OFF and further debugging is not possible

Other Parts Discussed in Thread: MSP430F2417

My old laptop just gave out so I just bought a new laptop and installed code composer (4.1.1.00014).  Whenever I try and debug my project I get the following error message:
Warning: CPU is OFF and further debugging is not possible.

The "run" button is greyed out and I cannot run my program on the target msp430 (msp430f2417).  The "reset" button is not greyed out but doesn't seem to do anything when I press it.  The "pause" button actually ungreys the "run" button, but pressing the run button doesn't seem to do anything.  I'm using TI's MSP-FETU430IF.  I know this project and code worked fine yesterday on my old laptop and nothing has changed since then.  I'm probably using a newer version of code composer than what I was previously using, but can't really tell for sure since my old laptop isn't bootable at the moment.

Any thoughts?  The code compiles and downloads just fine, I just can't seem to run the code once it's downloaded.  Is there a setting in code composer that I forgot to set somewhere?  I wouldn't think it'd be a project specific setting since I'm just working off of my old project that previously worked.

Any help would be appreciated!  I'm at a stand still until I get this figured out :)

Thanks!

Kevin 

  • The issue could be due to the device being reset by watch dog. The C boot routine initializes global and static variables and copies their values from .cinit in program space to the address of the variable in the .bss section. Depending on how much initialization needs to be done, it could take a long time and cause the watchdog to fire and reset the device before main() is called, and then the process repeats itself.

    This theory can be tested by disabling the watchdog prior to the call to the auto_init routine.

    For MSP430 devices, this can be done by adding code to disable the watchdog within the routine system_pre_init() in file pre_init.c. This routine is called prior to the auto init hence the watchdog will be disabled prior to the C initialization process. This file can be found in the directory C:\Program Files\Texas Instruments\ccsv4\tools\compiler\msp430\lib after unzipping the file rtssrc.zip. Add this file to your project and edit it to add the statement to disable to watchdog. Rebuild your project and test.

  • Hi Kevin,

    you can see the sourcecode below. I've just copy&pasted it from one of my latest posts.

    Rgds
    aBUGSworstnightmare

    //int _system_pre_init (void)
    int _system_pre_init (void)
    {
      // disable watchdog timer
      //------------------------
      WDTCTL = WDTPW + WDTHOLD;               // Stop WDT

      // place your code for hardware initialization here 

      /*==================================*/
      /* Choose if segment initialization */
      /* should be done or not.           */
      /* Return: 0 to omit seg_init       */
      /*         1 to run seg_init        */
      /*==================================*/
      return (1);
    }

    P.S. rename the function to int __low_level_init(void) when using IAR.

  • Hi guys, thanks for the suggestion.  Unfortunately, this did not do the trick.  I still get the warning message saying the CPU is off.  I can hit the "pause" button and code composer seems to think it's in the _fs_mpy() routine.  I was able to get my old computer booting again and can verify that the EXACT same code and project file runs fine on my other machine, but not on my new laptop with the fresh install of code composer.  That leads me to think it must be a setting somewhere... no idea what it could be though.

    If it matters at all, my new laptop is running Windows 7 64-bit.  Maybe it's an issue with the FETU430IF debugger itself (ie driver issue)?

    Is there anything more I need to do other than copy pre_init.c into my project and disable the watchdog timer from _system_pre_init() ?

     

  • Actually looking at the .map file I generated for my project, it looks like _system_pre_init is still coming from the library file rather than my new pre_init.c.... is there a setting I need to change to use my own custom _system_pre_init rather than the library one?

  • Hi Kevin,

    you need to add a file to your project which is named 'pre_init.c' which contains the source from the post above. Now the linker should replace the library version with the one from your project (as with any other custom version of a library function (i.e. custom printf())).

    Rgds
    aBUGSworstnightmare

**Attention** This is a public forum