Topic : Real Time Variable Watch for STM32 not working??

Forum : ARM

Original Post
Post Information Post
December 31, 2012 - 7:39pm
Guest

I have been using Ride with the STM8 and now I am working on a project with the STM32. I am not getting real time updates of variables in the Watch Window. They only update if I pause the debugger. It worked fine with the STM8.

Ride v7.42.12.0305
RKit-ARM v1.46.12.0305

Replies
Post Information Post
+1
0
-1
January 2, 2013 - 2:00pm
Raisonance Support Team

Hi,

Some Cortex devices, including the STM32F0 series, do not provide the read-on-the-fly mechanism that allows the IDE to refresh the data views, watches, etc. while the CPU is running.

So if you are using an STM32F0 device, then what you observe is a limitation of the STM32.

Otherwise it could be some side-effect of optimization. The ARM compiler optimizes some things much more than the STM8 compiler, and it can be difficult or even impossible to watch some variables. (they might even disappear) If you really need to watch a variable, be sure it is global and volatile.

There could also be problems due to competition between the CPU and the debug module for accessing the data bus.

If you are not using an STM32F0 and if you are unable to watch volatile global variables, please give us more details: complete name of the device, region (address) of watched data, type of the variable, etc.

Best Regards,

Vincent

+1
0
-1
January 2, 2013 - 3:49pm
Guest

Sorry for making you type so much, I should of said which chip I was using... it's an F0.

Do the higher versions, F1, etc. have read-on-the-fly?

+1
0
-1
January 2, 2013 - 5:12pm
Raisonance Support Team

Hi,

Yes, all the STM32F1/2/3/4 provide this feature.

Best Regards,

Vincent

+1
0
-1
January 2, 2013 - 10:13pm
Guest

I asked my ST contact about this. His reply was that IAR and Keil both do on-the-fly while the CPU is running for the F0 core. That makes is sound like a Ride limitation. Is there a disconnect?

+1
0
-1
January 3, 2013 - 10:20am
Raisonance Support Team

Hi,

Well, I had been given different information, but I admit I didn't check it in the doc.
After your post I made a little testing and it seems you are correct: ROTF works on the F0.

Thank you for the information.

I will double-check the doc to be sure. Sorry I didn't do it before.

In the meantime, you can activate ROTF in Ride by this simple manipulation:

1. Close all instances of Ride, RFlasher, etc.

2. Open in a text editor the sim file for your CPU. For example:
\sim\ARM\STM32F051x8.sim

3. Search the file for "Disable_Read_On_The_Fly". You should find two instances: "Disable_Read_On_The_Fly_On_Everything" and "Disable_Read_On_The_Fly_In_SWD".

4. Change all these values from 1 to 0.

5. Save the sim file, reopen Ride, debug, ...

Note that for now we cannot be sure that this feature works. If after changing the sim file you experience problems like connection errors or unexpected debug session termination, then you should try to revert the change.

Please give us your feedback on this, positive or negative.

Best Regards,

Vincent