Apa perbedaan antara debugger JTAG komersial dan open source FT2232H debugger FT2232H?

10

Saya telah melihat beberapa penantang JTAG komersial seperti:

  1. On-chip Analyzer iC6000 (dengan dukungan protokol Aurora)
  2. Lauterbach - Alat Pengembangan Mikroprosesor

Dan debugger JTAG berbasis OpenOCD FT2232H:

  1. Pemukul lalat
  2. NGX ARM USB JTAG

Mengapa kotak debuggers komersial ini besar dibandingkan dengan debuggers JTAG FT2232H yang hanya memiliki PCB ukuran kartu kredit kecil? Perangkat keras tambahan apa yang ada di dalam debuggers komersial dan di bagian mana dari debugging ini dapat membantu?

robomon
sumber
3
Saya memberikan suara untuk menutup pertanyaan ini sebagai di luar topik karena informasi yang diperlukan ada di situs web produsen.
Leon Heller
Mungkin saya harus mengajukan pertanyaan dengan cara yang berbeda
robomon

Jawaban:

7

Kabel JTAG dapat dibangun di sekitar segala macam hal. Kabel Xilinx JTAG, misalnya, memiliki chip Cypress dan FPGA. Kabel atmel umumnya berisi mikrokontroler AVR dengan dukungan USB. Mereka juga biasanya akan berisi beberapa komponen antarmuka / level terjemahan / perlindungan / isolasi. Itu benar-benar tergantung pada pabrikan, mereka semua milik dan saling tidak kompatibel. Secara umum Anda perlu memiliki kabel yang berfungsi dengan perangkat lunak apa pun yang perlu Anda gunakan. Jika yang Anda butuhkan adalah OpenOCD, maka kabel berbasis FTDI baik-baik saja. Tetapi jika Anda ingin menggunakan, katakanlah Xilinx ChipScope? Maka Anda perlu membayar untuk hal yang nyata dari Xilinx atau tiruan Cina.

Tautan yang Anda miliki bukan untuk kabel JTAG sederhana, namun jauh lebih terspesialisasi. Saya pribadi akan menganggap ini sebagai alat uji yang lengkap. Mereka pada dasarnya adalah penganalisa protokol khusus. Mereka dirancang untuk berinteraksi dengan perangkat keras khusus yang dimasukkan ke dalam perangkat yang sedang diuji. Perangkat keras jejak berbeda dari JTAG. Tujuannya adalah untuk merekam jejak eksekusi lengkap dari perangkat lunak yang sedang berjalan (yaitu semua cabang diambil) di semua inti eksekusi dan meneruskannya ke sistem pengumpulan jejak eksternal (kotak yang dipermasalahkan) melalui bus berkecepatan tinggi. Jejak ini kemudian dianalisis secara offline. Ini BUKAN sama dengan debugging yang dapat dilakukan melalui JTAG dengan mengatur breakpoints dan melangkah melalui kode. Pengumpulan jejak seharusnya sepenuhnya transparan untuk program yang sedang berjalan (tidak ada breakpoints atau kode tambahan). Karena prosesor yang diuji dapat menjalankan beberapa ratus juta instruksi per detik, menyimpan jejak saat diproduksi memerlukan banyak bandwidth dan memori yang cepat. Perangkat yang terhubung mendukung protokol Aurora (mungkin antara lain), yang merupakan protokol serial berkecepatan tinggi 8b / 10b, agak mirip dengan USB 3, serial ATA, serial gigabit / ethernet 10G, dan PCIe. Ini mampu mentransfer data pada 6,25 Gbps, jauh lebih besar daripada yang dapat ditangani oleh tautan USB kembali ke PC, sehingga data yang ditangkap harus disimpan dalam RAM onboard untuk analisis offline. Perangkat ini akan berisi FPGA agak high-end dengan deserialisator kecepatan tinggi internal untuk menangkap data bersama dengan DRAM cepat yang cukup banyak (beberapa GB),

alex.forencich
sumber
8GB untuk jejak pada iC6000, lebih dari prolly PC gramma Anda :-) Dan bandwidth 6,25 Gbps melalui kabel Aurora.
Fizz
6

Perbedaannya terletak pada perangkat lunak & fungsionalitas, yang sangat mempengaruhi perangkat keras.

Kabel JTAG FTDI menggunakan set perintah untuk menghasilkan sinyal JTAG. Ini adalah perintah tingkat yang sangat rendah, sering kali masuk ke detail yang tepat bagaimana statemachine JTAG bekerja dan dioperasikan. Logika mengirim perintah yang benar untuk pengaturan Anda dilakukan pada host debug pada PC Anda.

Ini fungsional, perangkat keras murah, perangkat lunak bebas (GNU GCC + GDB + OpenOCD), dll. Cukup fleksibel (karena set perintah tingkat rendah) sehingga ada port untuk debugging ARM, pemrograman FPGA, atau pemindaian rantai JTAG generik .

Kabel komersial jauh lebih spesifik untuk platform dan sering mengandung logika di dalam kabel. Ini memungkinkan program PC untuk berbicara dengan perangkat dengan cara yang lebih abstrak yang bisa lebih cepat.

Misalnya: lihat protokol USB JLINK . Ini berisi perintah seperti EMU_CMD_WRITE_MEM_ARM79. Kabel FTDI juga dapat mengeksekusi perintah ini, tetapi diterjemahkan pada sisi PC ke JTAG tingkat rendah yang perintah kabel FTDI pahami. Ini juga berarti perintah tingkat tinggi (tulis beberapa memori) dipecah menjadi banyak lagi sub-perintah, yang dapat dilakukan JLINK pada kabel itu sendiri. Ini dapat menghasilkan latensi yang lebih baik (dengan mempertimbangkan keterbatasan USB) dan / atau kecepatan yang lebih tinggi.

Ini juga tergantung pada vendor komersial IDE mana kabel yang mereka dukung, dan kemungkinan besar kabel komersial didukung. Di sisi lain, kemungkinan besar IDE gratis akan mendukung kabel debug FTDI murah.

Beberapa perangkat lunak komersial juga berisi dukungan untuk breakpoint kode perangkat lunak, di mana Anda dapat menetapkan lebih banyak breakpoint kode daripada yang diizinkan oleh perangkat keras.

Menggunakan fungsi jejak beberapa mikrokontroler membutuhkan perangkat keras yang sangat cepat untuk menangkap bus paralel 4-bit. Perangkat keras yang mampu fitur ini sering mengandung FPGA untuk melakukannya.

Hans
sumber
Untuk mengatakan apa-apa tentang bandwidth ini dapat menangani; yang untuk Xilinx kelas atas yang ditanyakan OP (iC6000) dapat melakukan jejak 6,25 Gbps dengan protokol Aurora, yang (1) tidak didukung oleh Flyswatters dan bahkan jika itu, bandwidth apa yang akan ditangani oleh bandwidth ini? Dan memori internal ini memiliki: 8GB untuk jejak pada iC6000.
Fizz