Topic : Flash not always erased (STR750)

Forum : ARM

Original Post
Post Information Post
March 28, 2007 - 8:19pm
Guest

We are working with the RLink Pro and REva 2.0 as well as REva 2.1 EVal boards. The daughterboard is the STR750.
While debugging I get "strange" results on some occassions. "Strange" means here e.g. older constant values or code is executed
(prio to last build and flash sequence). When I explicitely erase the flash the problem is gone.
Ride is Version 06.10.255 Build number BN746-ST7-ARM-80C51-P1-STR750

Thanks in advance
Alexander Mueller

Replies
Post Information Post
+1
0
-1
April 2, 2007 - 2:17pm
Raisonance Support Team

Hi,

Have you detached the starter RLink that was on the REva before using the Pro?
If not, then you should do it because it can lead to conflicts.

What do you mean by "explicitly erase the flash"? Are you doing this through RFlasher?

Have you selected all the sectors in the programming section of the debugging options?
If not, can you please check that the data problems that you see are not located in a sector that you deactivated.

It would be easier if we could have your project here. (or any other project showing the problem, but we need it precompiled and complete with source files, include files, listing files, etc.) Please send it to "support@raisonance.com"

Best Regards,

Vincent

+1
0
-1
April 19, 2007 - 11:44am
Guest

Explicitely means I erase the flash in Debug-Options (all sectors checked).
And now we are on the "real" hardware, not REva anymore.

+1
0
-1
May 23, 2007 - 12:32pm
Guest

We finally have found the solutions for out problem:
since the JTAG interface cannot halt the ARM right out of reset the will be some code executed.

In our case this is the bootloader. The bootloader enables the watchdog.

So, after a very short while the ARM core is halted by the JTAG interface and starts to erase or program, and of course
since the watchdog doesnt get reset this will lead to a watchdog reset. Voila!

Our workaround: we enable the watchdog in the bootloader NOT, if there is a "magic" value in a non initialized RAM location.
So prior erasing/programming the application via JTAG we set this special value and execute the erase/program afterwards.

Just in case somebody stumbles into a similar situation.

Alexander Mueller