Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[C#] ARM7TDMI-S R0 Uitlezen via de TAP Controller

Pagina: 1
Acties:

  • Gehakt
  • Registratie: Juli 2002
  • Laatst online: 24-10 20:19
Zoals te zien is in de titel moet ik voor school een opdracht doen waarbij ik register R0 van de ARM7TDMI-S processor uitlees via de TAP Controller (JTAG).
Plaatje van TAP Controller state machine



INTEST (1100):
The INTEST instruction places the selected scan chain in test mode:
The INTEST instruction connects the selected scan chain between DBGTDI and DBGTDO.
When the INTEST instruction is loaded into the instruction register, all the scan cells are placed in their test mode of operation.
In the CAPTURE-DR state, the value of the data applied from the core logic to the output scan cells, and the value of the data applied from the system logic to the input scan cells is captured.
In the SHIFT-DR state, the previously-captured test data is shifted out of the scan chain through the DBGTDO pin, while new test data is shifted in through the DBGTDI pin.

Single-step operation of the core is possible using the INTEST instruction.

EXTEST (0000)

The selected scan chain is placed in test mode by the EXTEST instruction. The EXTEST instruction connects the selected scan chain between TDI and TDO. When the instruction register is loaded with the EXTEST instruction, all of the scan cells are placed in their test mode of operation:

In the CAPTURE-DR state, inputs from the system logic and outputs from the output scan cells to the system are captured by the scan cells.
In the SHIFT-DR state, the previously captured test data is shifted out of the scan chain using TDO, while new test data is shifted in using the TDI input. This data is applied immediately to the system logic and system pins.




Nou heb ik op zich wel een goed idee van hoe dit moet maar ik weet niet goed het verschil tussen de publieke JTAG instructie INTEST en EXTEST.

Om een register uit te lezen moet ik de volgende stappen nemen:
  1. Selecteer een scanchain.
  2. Selecteer public=eke instructie INTEST of EXTEST (JTAG Instructie)
  3. Duw instructie STR R[index], [R14] in de pipeline
  4. Duw 3x een NOP instructie in de pipeline om de voorgaande instructie verder de pipeline in te duwen.
  5. Lees uit wat er uit komt?
Het laatste stukje is misschien een beetje vaag maar wat ik bedoel is het volgende:
Nadat ik een scanchain heb geselecteerd moet ik de public instructie INTEST of EXTEST selecteren.
Dit verbind de geselecteerde Scanchain tussen TDI en TDO.
Via INTEST of EXTEST moet ik dan 4 instructies in de ARM processor rammen.
Als laatste moet ik de data er weer uitklokken.
Ook met INTEST of EXTEST neem ik aan.
De vraag is dus welke moet ik hebben om de instructies in de ARM7TDMI te krijgen en welke heb ik nodig om uiteindelijk de data (de inhoud van R0) er weer uit te klokken.

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 16-11 18:33
Kan geen info vinden over EXTEST, alleen INTEST?

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Gehakt
  • Registratie: Juli 2002
  • Laatst online: 24-10 20:19
ARM7TDMI datasheet link

7.8.1 EXTEST (0000)
The selected scan chain is placed in test mode by the EXTEST instruction.
The EXTEST instruction connects the selected scan chain between TDI and TDO.
When the instruction register is loaded with the EXTEST instruction, all the scan cells are placed in their
test mode of operation.
In the CAPTURE-DR state, inputs from the system logic and outputs from the output scan cells to the
system are captured by the scan cells. In the SHIFT-DR state, the previously captured test data is shifted out
of the scan chain via TDO, while new test data is shifted in via the TDI input. Note that this data is applied
immediately to the system logic and system pins.

7.8.3 INTEST (1100)
The selected scan chain is placed in test mode by the INTEST instruction.
The INTEST instruction connects the selected scan chain between TDI and TDO.
When the instruction register is loaded with the INTEST instruction, all the scan cells are placed in their test
mode of operation.
In the CAPTURE-DR state, the value of the data applied from the core logic to the output scan cells, and the
value of the data applied from the system logic to the input scan cells is captured.
In the SHIFT-DR state, the previously captured test data is shifted out of the scan chain via the TDO pin,
while new test data is shifted in via the TDI pin.
Single-step operation is possible using the INTEST instruction.

Uit de bovenstaande datasheet. Alleen die datasheet is van de ARM7TDMI dus ik begin nu een klein beetje te twijfelen of mijn proc wel de EXTEST functie heeft...