Ticari bir JTAG hata ayıklayıcısı ile açık kaynaklı bir FT2232H OpenOCD hata ayıklayıcısı arasındaki fark nedir?


10

Birkaç ticari JTAG hata ayıklayıcı gördüm:

  1. iC6000 On-chip Analyzer (Aurora protokol desteği ile)
  2. Lauterbach - Mikroişlemci Geliştirme Araçları

Ve OpenOCD FT2232H tabanlı JTAG hata ayıklayıcıları:

  1. Sineklik
  2. NGX ARM USB JTAG

Bu ticari hata ayıklayıcılar neden sadece küçük bir kredi kartı boyutunda PCB'ye sahip olan FT2232H JTAG hata ayıklayıcılarına kıyasla büyük kutulardır? Ticari hata ayıklayıcıların içinde hangi ek donanımlar bulunur ve bunlar hata ayıklamanın hangi kısmında yardımcı olabilir?


3
Bu soruyu konu dışı olarak kapatmak için oy kullanıyorum çünkü gerekli bilgiler üreticilerin web sitelerinde.
Leon Heller

Belki soruyu farklı bir şekilde
sormalıyım

Yanıtlar:


7

JTAG kabloları her türlü malzemenin etrafına kurulabilir. Örneğin Xilinx JTAG kablolarında bir Cypress yongası ve bir FPGA bulunur. Atmel kablolarında genellikle USB destekli bir AVR mikro denetleyici bulunur. Ayrıca genellikle bazı arayüz / seviye çevirisi / koruma / izolasyon bileşenleri içerecektir. Gerçekten üreticiye bağlıdır, hepsi tescilli ve karşılıklı olarak uyumsuzdur. Genellikle kullanmanız gereken herhangi bir yazılımla çalışan kabloya sahip olmanız gerekir. İhtiyacınız olan tek şey OpenOCD ise, FTDI tabanlı bir kablo iyidir. Ama kullanmak istiyorsanız, Xilinx ChipScope deyin? Sonra Xilinx gerçek bir şey ya da bir Çin nakavt ödemek gerekiyor.

Sahip olduğunuz bağlantılar basit JTAG kabloları için değildir, çok daha uzmanlaşmıştır. Ben şahsen bunları tam bir test ekipmanı parçası olarak görüyorum. Temel olarak uzmanlaşmış protokol analizörleridir. Test edilen cihaza dahil edilen özel izleme donanımı ile arayüz oluşturmak üzere tasarlanmıştır. İzleme donanımı JTAG'dan farklıdır. Amacı, çalışan yazılımın tüm yürütme izini (yani, alınan tüm şubeleri) tüm yürütme çekirdeklerine kaydetmek ve bunu yüksek hızlı bir veri yolu üzerinden harici izleme toplama sistemine (söz konusu kutuya) aktarmaktır. İz daha sonra çevrimdışı analiz edilir. Bu, kesme noktaları ayarlanarak ve kod içinde adım adım JTAG üzerinden yapılabilen hata ayıklama ile aynı DEĞİLDİR. İz toplama işleminin çalışan programa tamamen saydam olması gerekir (kesme noktası veya eklenen kod yok). Test edilen işlemci saniyede birkaç yüz milyon talimat uygulayabildiğinden, izi üretildiği gibi saklamak çok fazla bant genişliği ve hızlı bellek gerektirir. Bağlı cihazlar, USB 3, seri ATA, seri gigabit / 10G ethernet ve PCIe'ye benzeyen 8b / 10b kodlu yüksek hızlı seri protokol olan Aurora protokolünü (muhtemelen diğerleri arasında) destekler. Verileri 6.25 Gbps hızında aktarabilir, USB bağlantısının PC'ye yapabileceklerinden önemli ölçüde daha fazladır, bu nedenle yakalanan verilerin çevrimdışı analiz için dahili RAM'de saklanması gerekir. Bu cihazlar, oldukça hızlı (birkaç GB) hızlı DRAM ile birlikte verileri yakalamak için dahili yüksek hızlı serileştiricilere sahip oldukça yüksek uçlu FPGA'lar içerecek,


İC6000'deki izler için 8GB, gramma PC'nizden daha fazlası :-) Ve Aurora kablosu ile 6.25 Gbps bant genişliği.
Fizz

6

Fark, donanımı büyük ölçüde etkileyen yazılım ve işlevsellikte.

FTDI JTAG kabloları JTAG sinyalleri üretmek için bir komut seti kullanır. Bunlar çok düşük seviyeli komutlardır, genellikle JTAG statemachine'ın nasıl çalıştığı ve çalıştırıldığı ile ilgili ayrıntılara girerler. Kurulumunuz için doğru komutları gönderme mantığı, bilgisayarınızdaki hata ayıklama ana bilgisayarında yapılır.

Bu işlevsel, ucuz donanım, özgür yazılım (GNU GCC + GDB + OpenOCD), vb. .

Ticari kablolar bir platforma çok daha spesifiktir ve genellikle kablo içinde mantık içerir. Bu, PC programının cihazla daha hızlı bir şekilde daha soyut bir şekilde konuşmasını sağlar.

Örneğin: JLINK USB protokolüne bakın . EMU_CMD_WRITE_MEM_ARM79 gibi komutlar içerir. FTDI kabloları da bu komutu yürütebilir, ancak PC tarafında FTDI kablosunun anladığı düşük seviye JTAG komutlarına çevrilir. Ayrıca, yüksek düzey komutun (bazı bellek yazma), JLINK'in kendi kablosunda yapabileceği daha birçok alt komuta bölünmesi anlamına gelir. Bu daha iyi gecikme (USB sınırlamaları dikkate alınarak) ve / veya daha yüksek hız ile sonuçlanabilir.

Hangi kabloyu destekledikleri de IDE ticari satıcılarına bağlıdır ve ticari bir kablonun desteklenmesi daha olasıdır. Öte yandan, serbest IDE'lerin ucuz FTDI hata ayıklama kablolarını desteklemesi daha olasıdır.

Bazı ticari yazılımlar, donanımın izin verdiğinden daha fazla kod kesme noktası ayarlayabileceğiniz yazılım kodu kesme noktaları desteği de içerir.

Bazı mikro denetleyicilerin izleme işlevlerini kullanmak için 4 bitlik bir paralel veri yolu yakalamak için çok hızlı bir donanım gerekir. Bu özelliğe sahip donanımlar genellikle bir FPGA içerir.


Bant genişliğinden hiçbir şey söylemek için bunlar işleyebilir; OP'nin (iC6000) hakkında sorguladığı üst düzey Xilinx için, Aurora protokolüyle 6.25 Gbps izler yapabilir, bu (1) Flyswatters tarafından desteklenmez ve olsa bile, bunlar hangi bant genişliğini ele alır? Ve dahili bellekte şunlar bulunur: iC6000'deki izler için 8 GB.
Fizz
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.