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.

MSP430FR5994: MSP430: Error initializing emulator: A firmware update is required for the MSP430 Debug Interface (MSP-FET430UIF / MSP-FET / eZ-FET).

Part Number: MSP430FR5994
Other Parts Discussed in Thread: MSP-FET

Hello to all,

after few months of working with MSP430FR5994, when I tried to increase heap size, this problem happened.

When I try to debug and run my program, I get the message from CCS:

MSP430: Error initializing emulator: A firmware update is required for the MSP430 Debug Interface (MSP-FET430UIF / MSP-FET / eZ-FET). Click the "Update" button to update the firmware and launch your debug session (this may require several update steps).  DO NOT UNPLUG THE INTERFACE DURING THE UPDATE.

If I click update, update starts but before it finishes I get the same message again. Endless loop.

Tried everything what I could find on internet, nothing helped.

Can someone  help me with this please.

Thank you.

Sladjan

  • Hi,

    A few questions:

    If you decrease the heap size back to what it was before do you still see the issue?
    What debug interface are you using?
    Are you using a LaunchPad or a target board or custom hardware?

    Regards,
    Nathan
  • Hi Nathan,

    1. If I set heap size to what it previously was, the issue is still there.

    2. Debug interface: eZ-FET.

    3. I'm using LaunchPad MSP430FR5994.

    What it just happened is that I haven't worked on the project for four days. Today, when I tried to debug and run my code, I was able to run my code on the board. I don't know why and how but it worked. The heap size was on default setting.

    Nevertheless, this is still an issue. I should be able to change my dynamic memory size but with this problem I'm not sure am I able to do that.

    Regards,

    Sladjan

  • Hi Sladjan,

    One more question: what version of CCS are you using?

    Regards,
    Nathan
  • CCS Version: 7.2.0.00013

    Regards,
    Sladjan
  • Hi Sladjan,

    It does seem odd that the problem seemed to fix itself. What was the original heap size, and what are you trying to change it to? Have you tried increasing the heap size by a smaller amount? Does an increase of any size cause the issue?

    Regards,

    Nathan

  • Hello Nathan,

    I agree, it seems very odd.

    Original heap size is 160 bytes, and I'm trying to set it to like 30 KB. I need to store an array which can be the size from 1 KB to approximately 30 KB the most.

    I tried to increase it to 1 KB and this error for an update would appear.

    Unfortunatelly, if you change the size of the heap on any value you get this error that you need to update your Debug Interface.

    Regards,

    Sladjan

  • Hi Sladjan,

    First of all, the MSP430FR5994 only has 8 kB of RAM, so you will not be able to set your heap size to 30kB (there is not that much RAM physically available). You could use FRAM for this, but you would need to make sure that the variables that you are allocating space for are being stored in FRAM. You should, however, be able to set it to 1 kB. To clarify, are you setting it in CCS as shown below?


    When I do this, I do not see the issue.

    Regards,

    Nathan

  • Hi,

    Has this issue been resolved?

    Regards,
    Nathan
  • Hi Nathan,

    thanks for your help. I was testing this and it seems that all is good. For heap size of 1024 bytes there are no problems.

    However, this doesn't suit my application and I ran into other problems like some completely weird behaviour of MCU or more probably compiler.

    Among many what I was trying to figure out:

    (in some part of the code)

    unsigned char x;

    x = 0x03;

    x = x|(0x04);

    After executing bitwise OR command, in debugger it can be seen x stays 0x03.

    Is there any explanation to this?

    Thanks in advance,

    Sladjan

  • Hi Nathan,

    Suddenly today the same error appeared again. This time nothing was done with the memory. It simply appeared from nowhere.

    Regards,
    Sladjan
  • Hi Sladjan,

    Regarding your first question (about the OR command), I would need more information to see why this may be the case (such as the rest of your code). First, though, please make sure when checking the debugger that you are at a breakpoint after the line with the OR.

    As for the debugging issue, again it is hard to pin down when it is inconsistently appearing. Have you tried debugging the MSP using a different PC?

    Regards,

    Nathan

  • Hi Nathan,

    regarding the OR command, I have tested it in a simple program just consisting of this command in main function. It doesn't work.

    int main(void)

    {

      t1 = 0x03;

      t1 = t1 | (0x04);

    }

    In the end, t1 = 0x03.

    Regarding the UPDATE error, it happened like before. I had an error on Friday, haven't worked on it on weekend, and on Monday everything was good.

    Haven't tried to use it on another computer. Next time it happens I'll try that and see what happens.

    Regards,

    Sladjan

  • Hi Sladjan,

    Please make sure you include the following two lines of code in main before your code:

    WDTCTL = WDTPW + WDTHOLD; // Stop Watchdog

    PM5CTL0 &= ~LOCKLPM5; // Disable the GPIO power-on default high-impedance mode
    // to activate previously configured port settings

    The first line in particular is likely causing your issue.

    As for the UPDATE error, I am looking into that along with some related issues and I will update this thread with what I find.

    Regards,
    Nathan
  • Dear Nathan,

    just to give an update.

    WDTCTL = WDTPW + WDTHOLD; // Stop Watchdog  this line is present in my main function. So it is not up to watchdog.

    PM5CTL0 &= ~LOCKLPM5; Added this one to my simple test code. Result the same.

    Regarding UPDATE ERROR, it hasn't appeared since last time I wrote. 

    Regards,

    Sladjan

  • Hi Sladjan,

    Based on the code you provided, I do not see anything that should be causing this issue. I would need more info to help further, such as the rest of the code (including where you declare t1) and any other configurations that are different from usual. Again, I encourage you to make sure that you are using the debugger correctly (i.e. that you are at a line of code AFTER the line where you do the OR), and that you are viewing the variable correctly in CCS.

    Regards,
    Nathan
  • Hi Sladjan,

    Were you able to resolve this issue? If so, please mark it as answered.

    Regards,
    Nathan
  • Hi Nathan,

    I can't say that this resolved my issue, but since it helped I marked it as solved.

    Regarding FET error problem, the support wasn't of any help.
    This is the problem that isn't sovled in any thread (as I last checked). Most of people from TI support don't even know why that is happening. Don't have to mention further how to solve it.

    As for the second issue with OR function, well to see it work, compiler optimization has to be turned off. Basically, my problem was in the debugger. This debbuger in CCS 7 is far from fully functional. In many cases it has weird or completely chaotic behaviour.

    Kind regards,
    Sladjan

**Attention** This is a public forum