Re: [iPAQ] JTAG who?

From: Michael Scott Shappe <mikey.a.t.hundred-acre-wood.com>
Date: Wed Feb 27 2002 - 11:11:28 EST

> Sorry for this slight OT question: I'm not a newbie and I have lots of
> wierd knowledge I'll never get any use of, but I never heard of JTAG.

JTAG (IEEE 1149.1 Standard Test Access Port and Boundary-Scan Architecture)
is a standard which describes a 'port' (often just a set of exposed prongs)
on a board, and a protocol for controling hardware via that port. When
present on 'production' hardware, the port is usually hidden from prying
(user) eyes within the case. Used in combination with diagnostic 'probe'
hardware and controling software on a developer's workstation, the JTAG port
is how firmware (and sometimes software) for new boards is developed and
debugged.

Consider this chicken-and-egg problem: in order to run an operating system
on a board, you need to load it; in order to load it, you need a boot
loader. But...that boot loader doesn't just magically appear. Once you HAVE
a boot loader, you can always replace it using serial or network or a file
on disk, but until you have a boot loader, all you have is a dumb printed
circuit board with a bunch of stuff soldered on with pretty lines drawn
between them.

So: you need to write a boot loader that knows about the new hardware and
knows how to load code onto it. In order to do that, you need to somehow get
code onto the board.

A JTAG port allows you to push code into the board's memory, or write to
flash hosted on the board, and then to control and debug the processor as it
excecutes that code. JTAG ports are particularly critical if your board
either isn't supposed to have any kind of I/O, or doesn't have any yet, as
they allow you to use something like a modern debugger (using the JTAG
protocol and the probe) on your workstation to monitor and debug the board.

You can also use it when the product's ready for sale to load the shipping
code, altho' there are probably more efficient ways to mass-produce a
pre-programmed flash or ROM.

/m
Received on Wed Feb 27 16:11:35 2002

This archive was generated by hypermail 2.1.8 : Tue May 04 2004 - 09:44:33 EDT