JTAG - begrepps förvirrad

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
arte
Inlägg: 317
Blev medlem: 13 januari 2006, 01:18:50

JTAG - begrepps förvirrad

Inlägg av arte »

Hej.

Jag är lite förvirrad över vad JTAG är.
Är det ett protocol för att skicka data eller en komplett debug specification?

Rätta mig om jag har fel men detta är så jag har förstått det hela:
- JTAG är bara ett kommunikations lager.
- det finns några standard register som t.ex IDCODE men inget om t.ex breakpoint.
- En Atmel debugger kan inte sätta breakpoints i en ARM debugger eftersom Atmel gör enligt XX och ARM enligt YY. Fast båsa använder JTAG flr att kommunicera med debug hw.
- Det finns inget som säger att man måste använda JTAG för debug. Man skulle i teorikunna använda TCPIP.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: JTAG - begrepps förvirrad

Inlägg av blueint »

Det är en standard för att via TCK, TDI, TDO kunna identifiera, skriva flashminne och debugga. Resten får någon annan ta upp.
arte
Inlägg: 317
Blev medlem: 13 januari 2006, 01:18:50

Re: JTAG - begrepps förvirrad

Inlägg av arte »

Hittade IEEE specen. Kort och gott så verkar JTAG vara till för boundary scan.

Dessa är instruktionerna som stöds (notera avsaknaden av skriva till flash, step/breakpoint osv):

EXTEST 00000 Mandatory Allows testing of off-chip circuitry and board-level interconnections
SAMPLE/PRELOAD 00001 Mandatory Allows a snapshot of the normal operation of the component to be taken and examined
INTEST 00010 Optional Allows testing of on-chip system logic while component is assembled on the board
USERCODE 00011 Optional 32-bit user-programmable identification code
IDCODE 00100 Optional 32-bit hard-wired Microsemi ID, part number, and version number
HIGHZ 01110 Optional Tristates all I/Os to allow external signals to drive pins
CLAMP 01111 Optional Allows state of signals driven from component pins to be determined from the Boundary-Scan Register
Diagnostic 10000 Optional Allows microprobing of internal logic module's output logic state
BYPASS 11111 Mandatory Provides minimum-length (1-bit) serial path between TDI and TDO pins of component when notest operation of that component is required

MEN istället för att läsa/skriva tillståndet på kapselns pinnar så läser/skriver man register inne i CPUn.
JTAG protockollet har ingen aning om det är register eller pinnar, den bryr sig inte heler.

ARM och Intel har alla olika register och är inte kompatibla med varandra.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: JTAG - begrepps förvirrad

Inlägg av blueint »

Så man har inget tilverkarspecifikt direktkommando för att t.ex "SKRIV-ARM-REGISTER" ? verkar lite ineffektivt iofs.
arte
Inlägg: 317
Blev medlem: 13 januari 2006, 01:18:50

Re: JTAG - begrepps förvirrad

Inlägg av arte »

T.ex för att generera en breakpoint på modern ARM:
Via JTAG så skriver man till ett register i en modul som i sin tur genererar APB/AXI accesser som i sin tur skriver till ett breakpoint register i CPUn.

Vet inte hur mycket overhead det är men säkert ganska mycket.
En APB access är kanske 18(addr)+32(data) bitar. Ganska säker på att det shiftas väldigt mycket mer än 50bitar via JTAG interfacet för en APB skrivning.

En gammal ARM7TDMI fungerar annorlunda, tror att kedjan är kortare där.
Skriv svar