Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Message

Re: [lpc2000] Re: JTAG commands are secret?

2005-11-04 by Dominic Rath

On Friday 04 November 2005 10:10, piotr.zbysinski@... wrote:
> > they can't tell you JTAG commands for Flash memory programming for
> > the simple reason that they don't exist :)
> >
> :) Really? If so, how can you load SRAM via JTAG if TAP in JTAG (as
> : IEEE1149
>
> standard says) recognizes _only_ 5 commands (used _only_ for testing)? In
> devices with JTAG used for other than testing purposes  (like SRAM/Flash
> loading, debugging etc.) are special commands with codes different than 5
> standard commands (like ISP_xxx in PLDs). There is no way to use JTAG in
> other way than standard 16 states without _special_ codes.

ARM debugging uses optional/private instructions in conjunction with the 
public INTEST instruction. These are documented in the ARM datasheets.

>
> Executing instruction is possible after loading. You say "through" - I
> agree, but my question is: how to say to JTAG "through"?
>

Again, this is documented in the ARM datasheets. All ARM7 cores behave similar 
(there are differences, but you can work around those) as far as debugging is 
concerned. Using the scan chain select register (which is selected by the 
SCAN_N JTAG instruction) you read/write the Embedded-ICE scan chain and the 
Core scan chain.

> > so you execute this way small code
> > which do writes to your SRAM the information you want to write to the
> > flash (learn ARM assembler first for the data store commands ;) then
> > small code which calls Flash write IAP and you are set
>
> Sure, all of this is possible _after_ loading. My question is: "how to load
> SRAM"?

You scan the proper instruction to write core registers into the processor, 
followed by a "store multiple" instruction that is flagged to be executed at 
"system speed". Then you select the RESTART JTAG instruction, the core 
synchronises back to system speed (from debug mode), writes the memory, and 
reenters debug. Repeat those steps until all your data is in SRAM.

> Thank you for "learn" suggestion ;-)
> Piotr

Regards, Dominic

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.