JTAG (Grupul de acțiune de testare comună) nu este utilizat doar pentru citirea memoriei și depanarea hardware -ului, ci și pentru scrierea datelor pe cipuri. Aceasta include firmware -ul intermitent, memoria de programare și configurarea FPGAS. Acest tutorial vă va ghida prin procesul de scriere către jetoane folosind JTAG, inclusiv configurarea, instrumentele și cele mai bune practici.
Ce scrie JTAG?
Scrierea JTAG se referă la date de programare sau intermitent pe un circuit integrat (IC) prin interfața sa JTAG. Acest proces este utilizat în mod obișnuit pentru:
- Firmware intermitent sau bootloatoare
- Scrierea fișierelor de configurare la FPGAS
- Programarea memoriei non-volatile (de exemplu, eeprom, flash)
- Actualizarea software -ului sau firmware -ului în sisteme încorporate
Interfața JTAG oferă acces direct la cip, permițând un control precis asupra memoriei și configurației.
Ce vei avea nevoie
- Adaptor JTAG: O interfață hardware pentru comunicarea JTAG (de exemplu, Segger J-Link, Cablul platformei Xilinx, adaptoare suportate de OpenOCD).
- Dispozitiv țintă: Cipul sau sistemul pe care doriți să îl programați.
- Instrumente software: Instrumente precum OpenOCD, Urjtag, Vivado (pentru Xilinx) sau software-ul J-Link al lui Segger.
-
Fișier de firmware/de configurare: Fișierul care va fi scris pe cip (de exemplu,
.bin
,.hex
,.svf
). - 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 pinii JTAG
- Consultați fișa tehnică a cipului sau schemele PCB pentru a localiza pinii JTAG.
- Etichetele comune de pini JTAG includ
TDI
,TDO
,TCK
, șiTMS
. - Unele plăci au anteturi JTAG pre-configurate (conectori cu 10 pini sau 20 de pini).
2. Conectați adaptorul JTAG
- Conectați adaptorul JTAG la dispozitivul țintă, asigurând conexiuni corecte de pin:
-
TDI
(Date de testare în) până laTDI
-
TDO
(Date de testare) până laTDO
-
TCK
(Ceas de testare) până laTCK
-
TMS
(Modul de testare Selectați) laTMS
- Sol (
GND
) trebuie conectat.
-
3. Verificați nivelurile de tensiune
- Verificați dacă adaptorul JTAG se potrivește cu nivelurile de tensiune ale dispozitivului țintă (de exemplu, 3.3V, 1.8V).
- Unele adaptoare permit setările de tensiune configurabile.
Pasul 2: Instalarea instrumentelor software JTAG
1. OpenOCD
OpenOCD (Open On-Chip Debugger) este un instrument popular open-source pentru programare și depanare.
- Instalați prin intermediul managerului dvs. de pachete (de exemplu,
apt install openocd
pe Linux). - Asigurați -vă că adaptorul JTAG este acceptat de OpenOCD.
2. Instrumente specifice vânzătorului
- Segger J-Link: Utilizați software-ul Segger J-Link pentru operațiunile JTAG.
- Xilinx Vivado: Ideal pentru programarea Xilinx FPGAS și CPLDS.
- Intel Quartus: Pentru programarea dispozitivelor Intel/Altera.
3. Urjtag
Un instrument ușor pentru operațiunile JTAG de bază, cum ar fi scrierea firmware -ului.
- Instalați de la Site -ul Urjtag.
Pasul 3: Scrierea datelor pe un cip
1. Configurați software -ul JTAG
Configurați fișierul de configurare JTAG pentru a specifica adaptorul și dispozitivul țintă.
- Exemplu de configurație OpenOCD pentru un cip STM32:
source [find interface/jlink.cfg] transport select jtag source [find target/stm32f4x.cfg] init halt
2. Detectați dispozitivul țintă
Rulați o comandă pentru a scana lanțul JTAG și asigurați -vă că este detectat dispozitivul țintă.
- Pentru OpenOCD:
Verificați jurnalul de ieșire pentru dispozitivele detectate.openocd -f interface/jlink.cfg -f target/stm32f4x.cfg
3. Firmware Flash
Scrieți fișierul de firmware pe cip folosind comenzi JTAG.
- Exemplu de comandă OpenOCD:
program firmware.bin verify reset exit 0x08000000
-
firmware.bin
: Fișierul binar pentru a scrie. -
verify
: Se asigură că datele au fost scrise corect. -
reset
: Resetează dispozitivul după programare. -
0x08000000
: Începeți adresa în memorie.
-
4. Scrieți configurația la un FPGA
Pentru FPGA, utilizați .bit
sau .svf
fișiere.
- Exemplu de comenzi urjtag:
cable jtagkey detect svf configure.svf
5. Ștergeți memoria înainte de a scrie
Unele dispozitive necesită ștergerea memoriei înainte de intermitent.
- Exemplu de comandă OpenOCD:
flash erase_address 0x08000000 0x10000
Pasul 4: Cele mai bune practici pentru scrierea JTAG
- Backup Firmware existent: Citiți întotdeauna și salvați firmware -ul existent înainte de a scrie date noi.
-
Verificați integritatea datelor: Folosiți
verify
Comanda pentru a asigura o programare cu succes. - Utilizați conexiuni fiabile: Asigurați toate firele pentru a preveni corupția datelor în timpul scrierii.
- Potriviți nivelurile de tensiune: Asigurați -vă că adaptorul JTAG și dispozitivul țintă utilizează niveluri compatibile de tensiune.
- Verificați protecția scrierii: Dezactivați protecția împotriva scrierii (dacă este cazul) înainte de programare.
Aplicații ale scrierii JTAG
- Firmware intermitent sau bootloatoare
- Programarea FPGAS sau CPLDS
- Actualizarea software -ului sistemului încorporat
- Scrierea datelor de configurare în memorie
- Dezvoltarea și testarea firmware-ului în timp real
Depanare
-
Dispozitivul care nu este detectat:
- Verificați cablarea și PINOUT.
- Asigurați -vă că dispozitivul este alimentat și împământat corespunzător.
-
Scrieți erori:
- Asigurați-vă că regiunea de memorie nu este protejată de scriere.
- Verificați dublu adresa de pornire și formatul fișierului.
-
Verificarea eșuează:
- Verificați dacă există conexiuni fiabile.
- Utilizați o viteză de ceas JTAG mai lentă pentru a îmbunătăți stabilitatea.
Concluzie
JTAG este un instrument versatil pentru scrierea firmware -ului, configurarea memoriei și a dispozitivelor de programare la un nivel scăzut. Urmărind acest ghid, puteți utiliza cu încredere JTAG pentru a blifica firmware, actualizați software -ul și configura hardware -ul. Stăpânirea scrierii JTAG permite dezvoltarea și întreținerea eficientă a sistemelor încorporate!