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.
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 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,
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 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 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
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
**Attention** This is a public forum