David Brownell pisze:
> Normally a "reset halt" should have caused MAM and PLL to
> enter their just-after-hard-reset hardware default states ...
> 
> Are you saying those hardware default states cause problems?
> If so, that seems buggy.  I'm not sure where the issue would
> lie, but it's hard to imagine the chips could boot properly
> if the hardware defaults didn't work ...

Well, all LPC2xxx chips are "srst_pulls_trst" - that's the first thing. 
Moreover - due to internal bootloader operation there is some delay 
between de-asserting reset and activating the JTAG interface (this is 
some protection mechanism). That's why on LPC2xxx "reset halt" does:
1. reset
2. wait a while
3. halt
4. do a soft_reset_halt

during 2. there is enough time for the core to execute A LOT of 
instructions, like enabling MAM and PLL, which DO cause trouble whan you 
expect them to be disabled.

I haven't investigated that much, but I thing there is some hidden bug 
in soft_reset_halt, that makes programming (via gdb's "load") fail with 
"target not halted" (and yet - just before the "load" a "poll" command 
shows, that the core is halted /; )

> I think the fact that it doesn't work reflects a bug.  But I
> don't know those LPC chips, or thus where the bug would be.

That's a silicon limitation of LPC chips... For example in CrossWorks 
this is overcome by injection a startup with a "forever loop" that is 
later skipped by the debugger - this way at the start of the debugging 
session the chip is in good state. Unfortunately something like this 
cannot be implemented without build-tools integration /; Or maybe I'm wrong?

One way could be to implement some king of hardware reset (maybe via 
Watchdog?), the other - to halt the execution in some infinite loop...

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

Reply via email to