On 04/28/2011 05:49 PM, Eric Cooper wrote:
> On Wed, Apr 27, 2011 at 05:33:50PM -0700, Mike Dunn wrote:
>> On 04/27/2011 03:12 PM, Eric Cooper wrote:
>>> I think it must still be executing the unmodified instruction out of
>>> the i-cache.  Shouldn't openocd flush that when it sets a software
>>> breakpoint?
>> Yes, 'should' being the operative word.  If you're sure that the execution 
>> path
>> passes through this instruction, then yes, icache not being flushed is the
>> likely explanation.  I had to fix the same problem on xscale a while back.  
>> Not
>> sure of the status on arm7_9.  Again, maybe someone knowledgeable can chime 
>> in. 
> I've made a little progress on this.  The Feroceon chip also has an L2
> cache.  I added some code to invalidate this when setting breakpoints,
> and now the target at least halts at the right place.  

Awesome!

> But openocd
> doesn't notice it (I had to use poll to find out that it's halted),
> and doesn't restore the original instruction when resuming.
>

Hmmm.  I thought polling is done periodically while the the processor is
executing.  At least that's how I remember it for xscale.  I see that there's a
'poll' command to enable/disable this, but I never had to mess with it.  Maybe
on this arch it's off by default for some reason?

Sounds like support for this arch might be a bit rough around the edges.  I'm
sure that patches would be gratefully received :-)  Being able to set
breakpoints is kinda fundamental, and would be a huge contribution.

Mike

_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to