JTAG (grup de acțiune de testare comună) este un protocol utilizat pe scară largă pentru depanare, programare și testare a circuitelor integrate (ICS). Permite comunicarea directă cu un cip pentru a -și citi memoria, a efectua scanări de graniță sau a încărca firmware -ul. Acest tutorial vă va ghida prin elementele de bază ale utilizării JTAG pentru a citi jetoane, inclusiv configurarea, instrumentele și cele mai bune practici.
Ce este JTAG?
JTAG este o interfață standardizată (IEEE 1149.1) care oferă o modalitate de testare și depanare a hardware -ului la nivelul cipului. Este utilizat în mod obișnuit în:
- Dezvoltarea firmware -ului și depanarea
- Testarea conexiunilor PCB
- Firmware intermitent pe dispozitive
- Extragerea memoriei din ICS
JTAG folosește o interfață cu 4 sau 5 pini:
Ac | Descriere |
---|---|
TDI | Date de testare în |
Tdo | Testarea datelor |
TCK | Ceas de testare |
TMS | Modul de testare Selectați |
Trst | Resetare de testare (opțional) |
Ce vei avea nevoie
- Adaptor JTAG: Un dispozitiv hardware pentru a interfața cu cipul (de exemplu, Segger J-Link, adaptoare suportate de OpenOCD).
- Dispozitiv țintă: IC sau sistemul pe care doriți să îl citiți.
- Instrumente software: Aplicații pentru depanare JTAG, cum ar fi OpenOCD, URJTAG sau instrumente proprii.
- Documentația JTAG Pinout: Diagrama PINOUT pentru dispozitivul țintă.
- Accesorii de conexiune: Fire, anteturi și o bordură (dacă este necesar).
Pasul 1: Configurarea hardware -ului JTAG
1. Identificați interfața JTAG pe dispozitivul țintă
- Consultați fișa tehnică a cipului sau schemele PCB pentru a localiza pinii JTAG.
- Etichetele comune pentru pinii JTAG includ
TDI
,TDO
,TCK
, șiTMS
. - Unele plăci au etichetat anteturi JTAG (de exemplu, conectori cu 10 pini sau 20 de pini).
2. Conectați adaptorul JTAG
- Conectați adaptorul la dispozitivul țintă, potrivind pinout -ul JTAG:
-
TDI
pe adaptor se conectează laTDI
pe dispozitiv și așa mai departe. - Asigurați -vă că GND este conectat între adaptor și țintă.
- Oferiți putere dispozitivului țintă, dacă este necesar.
-
3. Verificați nivelurile de tensiune
- Asigurați -vă că adaptorul JTAG acceptă nivelurile de tensiune ale dispozitivului țintă (de exemplu, 3.3V sau 1.8V).
- Unele adaptoare au setări de tensiune configurabile.
Pasul 2: Instalarea instrumentelor software JTAG
1. OpenOCD (Debugger Open On-Chip)
OpenOCD este un instrument open-source utilizat pe scară largă pentru depanarea JTAG.
- Instalați -l folosind managerul de pachete (de exemplu,
apt install openocd
pe Linux). - Asigurați -vă că adaptorul JTAG este acceptat de OpenOCD.
2. Urjtag
Un instrument ușor pentru scanarea graniței și operațiunile de bază JTAG.
- Instalați prin Site -ul Urjtag.
3. Instrumente specifice vânzătorului
Pentru adaptoare proprii precum Segger J-Link sau Xilinx, utilizați software-ul lor oficial:
- Segger J-Link: Descărcați instrumentele J-Link din Site -ul Segger.
- Instrumente xilinx: Utilizați Vivado sau Impact pentru depanarea FPGA.
Pasul 3: Citirea datelor dintr -un cip
1. Configurați software -ul JTAG
- Creați sau încărcați un fișier de configurare care specifică adaptorul JTAG și dispozitivul țintă.
- Exemplu pentru OpenOCD:
source [find interface/jlink.cfg] transport select jtag source [find target/stm32f4x.cfg] init halt
- Exemplu pentru OpenOCD:
2. Detectați dispozitivul țintă
Rulați o comandă pentru a scana lanțul JTAG și pentru a identifica dispozitivele conectate.
- Pentru OpenOCD:
Căutați dispozitive detectate în jurnalul de ieșire.openocd -f interface/jlink.cfg -f target/stm32f4x.cfg
3. Conținutul memoriei Dump
Utilizați comenzi JTAG pentru a citi regiuni de memorie:
- Pentru OpenOCD:
dump_image memory.bin 0x08000000 0x10000
-
memory.bin
: Fișier pentru a salva groapa de memorie. -
0x08000000
: Adresa de pornire. -
0x10000
: Numărul de octeți de citit.
-
4. Efectuați scanări de graniță
Scanările de graniță verifică conectivitatea și funcționalitatea pinilor IC.
- Utilizați Urjtag sau OpenOCD pentru a efectua scanări de graniță.
- Exemplu în urjtag:
cable jtagkey detect bsdl path/to/bsdl/file.bsd svf boundary_scan.svf
Pasul 4: Cele mai bune practici pentru depanarea JTAG
- Asigurați conexiunea: Folosiți fire scurte și fiabile pentru a minimiza zgomotul.
- Verificați Pinout: Verificați dublu conexiunile PIN JTAG pentru a evita deteriorarea dispozitivului.
- Firmware de rezervă: Faceți întotdeauna o copie de rezervă a firmware -ului original înainte de a face modificări.
- Utilizați software -ul corect: Asigurați -vă că instrumentul pe care îl utilizați acceptă dispozitivul țintă.
- Tensiunea de monitorizare: Asigurați -vă că dispozitivul țintă funcționează la nivelul corect de tensiune.
Aplicațiile JTAG
- Debugging firmware și software
- Clipește noi firmware sau bootloatoare
- Extragerea datelor din memorie pentru analiză
- Diagnosticarea defectelor de fabricație PCB
- Hardware invers de inginerie
Depanare
-
Dispozitivul care nu este detectat:
- Verificați cablarea și pinout -ul.
- Asigurați -vă că dispozitivul țintă este pornit.
- Verificați nivelurile de tensiune pentru compatibilitate.
-
Erori JTAG:
- Asigurați -vă că este utilizat fișierul de configurare corect.
- Încercați să coborâți viteza ceasului JTAG dacă comunicarea eșuează.
-
Probleme cu permisiunea:
- Pe Linux, asigurați -vă că aveți permisiuni adecvate pentru a accesa dispozitive USB (utilizarea
sudo
sau configurațiudev
reguli).
- Pe Linux, asigurați -vă că aveți permisiuni adecvate pentru a accesa dispozitive USB (utilizarea
Concluzie
JTAG este un instrument de neprețuit pentru depanare și programare a jetoanelor la un nivel scăzut. Înțelegând elementele de bază ale hardware -ului și software -ului JTAG, puteți citi memoria cipului, firmware -ul de depanare și puteți efectua scanări de graniță. Experimentați cu diferite instrumente și configurații pentru a utiliza pe deplin JTAG în proiectele dvs.!