urjtag
urjtag kann man als JTAG client benutzen um z.B. Xlinx CoolRunner CPLD zu programmieren.
Jtag Interface
Ich benutze als JTAG Interface den OpenOCD Adapter von Embedded Projects mit FTDI2232 Chip.
Schritt für Schritt
Übersetzen
Ich übersetze urjtag selbst, da ich gerne libftd2xx verwende, weil ich damit die besten Erfolge bisher erzielt habe.
- Vorbedingungen installieren (kein Anspruch auf Vollständigkeit):
sudo apt-get install build-essential libusb-dev checkinstall
- urjtag herunterladen und entpacken:
wget "http://sourceforge.net/projects/urjtag/files/urjtag/0.10/urjtag-0.10.tar.bz2/download" -O - | tar -xvj
- Konfigurieren:
cd urjtag-0.10 ./configure ... jtag is now configured for Detected libusb : yes Detected libftdi : no Detected libftd2xx : yes Detected inpout32 : no Build SVF player : yes Build BSDL subsystem : yes Bus drivers : au1500 avr32 bcm1250 bf526_ezkit bf527_ezkit bf533_stamp bf533_ezkit bf537_stamp bf537_ezkit bf538f_ezkit bf548_ezkit bf561_ezkit bscoach ejtag ejtag_dma fjmem ixp425 jopcyc h7202 lh7a400 mpc5200 mpc824x ppc405ep ppc440gx_ebc8 prototype pxa2x0 pxa27x s3c4510 sa1110 sh7727 sh7750r sh7751r sharc_21065L slsup3 tx4925 zefant_xs3 Cable drivers : arcom byteblaster dlc5 ea253 ei012 ft2232 igloo jlink keithkoep lattice mpcbdm triton usbblaster wiggler xpc Lowlevel drivers : direct ftd2xx ppdev
- Compilieren:
make -j5
- Debian Paket erzeugen:
sudo checkinstall
- Fertig!
Konfiguration für xc2c128-vq100 hinzufügen
Standartmäßig beinhaltet urjtag keine Konfiguration für den Xilinx xc2c128-vq100.
Diese Konfiguration kann man jedoch aus der BSDL für den Baustein mittels „bsdl2jtag“ erzeugen. Dieses Tool ist bei urjtag dabei.
Die so erzeugte Datei muss in der Ordnerstruktur von urjtag unter /usr/local/share/urjtag eingepflegt werden.
Damit man das nicht jedes mal wieder neu lernen muss, habe ich mal alles in urjtag_xc2c128-vq100.tar.gz eingepackt. Diese Datei muss nur noch unter /usr/local/share/urjtag entpackt werden.
Bedienung
- Mittels
sudo jtag
kommt man in die urjtag shell.
- Mit
help cable
kann man sich alle unterstützen Adapter anzeigen lassen.
- Für meinen Adapter verwende ich
cable ARM-USB-OCD Connected to libftd2xx driver.
- Die angeschlossenen JTAG Devices kann man sich folglich anzeigen lassen
jtag> detect IR length: 8 Chain length: 1 Device Id: 00010110110110001010000010010011 (0x0000000016D8A093) Manufacturer: Xilinx Part(0): XC2C128-VQ100 Stepping: 0 Filename: /usr/local/share/urjtag/xilinx/xc2c128-vq100/xc2c128-vq100 Data register 'ISC_DEFAULT' already defined Data register 'DATAREG' already defined Data register 'DATAREG' already defined Data register 'DATAREG' already defined Data register 'DATAREG' already defined Data register 'DATAREG' already defined Data register 'DATAREG' already defined Data register 'DATAREG' already defined Data register 'DATAREG' already defined Data register 'DATAREG' already defined Data register 'DATAREG' already defined Data register 'DATAREG' already defined Data register 'DATAREG' already defined Data register 'DATAREG' already defined jtag>
Wurde manufacturer, part und filename erkannt, dann ist alles i.O.
- Mittels
part 0
wählt man das Device aus, welches man manipulieren will.
- Eine SVF-Datei lädt man mittels
svf myfile.svf
Links
- urjtag_xc2c128-vq100.tar.gz urjtag config für xc2c128-vq100 (nach /usr/local/share/urjtag entpacken)