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.
Hi TI Team,
I experienced a strange behavior in debugging MSP430FR5739 and MSP430FR5738 using my MSP-FET430UIF in Spy-Bi-Wire mode. When I download a program code after each debugger step the RAM area from 0x1C00 to 0x1C76 is overwritten. Using the debugger from MSP-EXP430FR5739 then this does not happen. I does also not happen if I load the program once and reload the debugger in mode “load symbols only”.
I checked MPU and DMA settings but these are okay.
When I fill memory area 0x1c00 up to 0x1c80 say 0xff then this is shown in Memory Browser. It is still there if I do a refresh. However after one step (F5) the RAM area from 0x1C00 to 0x1C76 is overwritten. Only 0x1C78 to 0x1c80 shows 0xff.
The overwritten content look like program code, but is not found in my program. It looks like:
C084 42C5 530F 5728 D263 80F5 0BF4 C70A 7766 4562 A973 5350 37C6 B322 FD7E BE15
3060 D223 8307 BE1F 8800 56E1 F7A8 0157 D4AE 313C 61AE D7FA 3659 1A4C 5C4B 1227
E48D 2D7F 208D 4E2C 143D 2486 46C6 4BA8 2231 8CB6 743C 26A6 C48E 3AB2 7945 01E7
CE80 831C 40E8 C56F 2FE0 0822 C2AE 8D94 9230 E466 0012 BF0C
Again this does not happen on MSP430FR5738 or using MSP-FET430UIF in “load symbols only” mode.
My CCS has Version: 5.4.0.00091. My MSP-FET430UIF has V1.4a SN 3016623108JR.
Is there any known workaround beside skip RAM 0x1C00 to 0x1C76?
Regards
Guenther
To write to flash, the FET has to upload a block of data into ram and then run a small program that copies it to flash.
On the devices with FRam instead of FLash, the FET can directly write to FRam word by word. So no buffering necessary and the data goes directly to its destination.
BTW: after power-on, ram content is undefined anyway, and uploading a new firmware is considered the same situation. So why do you care?
Hi Jens-Michael,
Yes, I would not care if it happens once. But it happens on EVERY debugger stop. The content of my variables are destroyed on EVERY breakpoint. The content is destroyed on EVERY "step into (F5)" or "step over (6)". It is not funny.
The only workaround I found is changing the lnk_msp430fr5738.cmd file and let the RAM start at 0x1C80. It's a waste of 128 bytes RAM but I can go on with my development.
Guenther
There is a bug in the MSP430.dll for the MSP-FET430UIF which corrupts the target memory, by writing "stale data". See CCS5.3 Acting strange for the details.Guenther Klenner said:Yes, I would not care if it happens once. But it happens on EVERY debugger stop. The content of my variables are destroyed on EVERY breakpoint. The content is destroyed on EVERY "step into (F5)" or "step over (6)". It is not funny.
I haven't seen a CCS update for this yet, but if you are using Windows Download DLL Developers Package v3.3.1.3 Released 06/28/2013 contains a MSP430.dll v3.3.13 which fixes the problem.Guenther Klenner said:The only workaround I found is changing the lnk_msp430fr5738.cmd file and let the RAM start at 0x1C80. It's a waste of 128 bytes RAM but I can go on with my development.
[You will need to replace the MSP430.dll in ccsv5\ccs_base\DebugServer\drivers and CCS will prompt you to update the MSP-FET430UIF firmware]
I haven't seen these errors myself, which I think are a sign of a USB communication error. There was another thread MSP-FET 430UIF Could not set device Vcc about how someone got rid of the "Could not set device VCC" error.Guenther Klenner said:What shal I do?
Is the MSP-FET430UIF still showing up under "Ports (COM & LPT)" in the Windows control panel?
Looking at the source code, the first thing the MSP430.dll does after establishing the USB connection is to try and set output voltage from the MSP-FET430UIF, but only when the requested target voltage is non-zero. Since your board is powered by it's own, if you set the CCS Project Properties -> Debug -> MSP430 Properties -> Target Voltage (mV) to zero it might change the behavior.Guenther Klenner said:Just by the way, the board is powered by it's own. Vcc should not be set by FET430UIF.
Hi Chester,
I guess something else is wrong. I get the Vcc error message on 3300 mV as well as 0 mV.
I used my colleagues FET430UIF and this works as mine before the update try. It also shows the RAM overwrite fault.
I tried to reflash my FET430UIF with MSP430Flasher but got an error message:
I'm hesitate to switch to MSP430.DLL V3.3.1.3 and destroy my colleagues FET430UIF. So I currently tested all with MSP430.DLL V3.3.0.6.
Is there a way to get my FET430UIF working even with the known bug?
Regards
Guenther
I didn't find a work-around without changing the MSP430.dll. In the CCS5.3 Acting strange thread a did attach a MSP430.dll built from the v3.3.0.6 source code, and with my fix for the RAM overwrite fault. If you used with your colleagues MSP-FET430UIF it wouldn't require a firmware update (since it only changes the code which runs on the PC). However, I can't guarantee it won't destroy the MSP-FET430UIF since I don't understand why switching to v3.3.1.3 caused an error.Guenther Klenner said:Is there a way to get my FET430UIF working even with the known bug?
Also, which Windows version are you running?
All my testing has been on Windows XP SP3. (in case the Windows version makes a difference to the errors)
Hi Chester,
I'm using Win 7, 32 bit. Do you know how to reflash a FET430UIF?
Regards
Guenther
I think there is a header inside the MSP-FET430UIF which allows the MSP430 firmware to be programmed from another FET, but can't find any instructions at the moment.Guenther Klenner said:Do you know how to reflash a FET430UIF?
Another possibility, with the broken FET can you successfully run the CCS "MSP-FET430UIF v3 to v2 Downgrade" utility? If so, running MSP430Flasher should prompt you to upgrade the firmware to get the FET working with CCS 5.4 again.
Hi Chester,
It worked. Here my report and question:
Using "ccsv5\ccs_base\DebugServer\drivers\V32V2.bat" I could downgrade to V2:
Initialize: done
MSP430_FET_GetFwVersion()
Firmware Version: 30300006
Status: Starting firmware update with 'Uifv3Downgrader.txt'!
...
Status: MSP-FET430 firmware (HAL) download was successfully
Status: MSP-FET430UIF v3 to v2 downgrade completed successfully
Press any key to close this application.
Starting CCS 5.4 and press debug. I was prompted for an update again as you said:
and it is back to start. I can use it like at the beginning. Also the RAM overwrite is there.
Now the good question:
Regards
Guenther
PS: Thank you for your help recovering my FET430UIF!
Guenther Klenner said:Now the good question:
- Shall I try to load MSP430.dll V3.3.1.3 again?
- Shall I do it by changing the file MSP430.dll in driver folder or by forcing FW update with MSP430Flasher or both?
To be honest, I don't know if the failure after attempting to upgrade to v3.3.1.3 was a once off "glitch", or due to a bug. Others have reported the "Could not set device VCC" and "Interface communication error" errors so a bug is possible.
Since you a using a MSP430FR5738 one other way to try and avoid the RAM overwrite bug is to use the MSP430.dll in 1121.FR_RAM_corruption_fix.zip. This is built from the v3.2.5.4 source but with my fix for the RAM overwrite bug (v3.2.5.4 was the last published source code prior to v3.3.1.3). As it is built from v3.2.5.4 you will be prompted to update the MSP-430FETUIF on first use. I would do the update by changing the MSP430.dll in the CCS driver folder, since as far as I can tell CCS and MSP430Flasher both just call MSP430_FET_FwUpdate in the MSP430.dll to perform the update.
**Attention** This is a public forum