Widziałem kilka komercyjnych debuggerów JTAG, takich jak:
- iC6000 On-chip Analyzer (z obsługą protokołu Aurora)
- Lauterbach - narzędzia programistyczne mikroprocesorów
Oraz debuggery JTAG oparte na OpenOCD FT2232H:
Dlaczego te komercyjne debugery są duże w porównaniu do debugerów FT2232H JTAG, które mają tylko niewielką płytkę drukowaną o wielkości karty kredytowej? Jaki dodatkowy sprzęt jest obecny w komercyjnych debuggerach iw jakiej części debugowania może to pomóc?
Odpowiedzi:
Kable JTAG mogą być budowane wokół różnego rodzaju rzeczy. Na przykład kable Xilinx JTAG mają układ Cypress i układ FPGA. Kable Atmel zazwyczaj zawierają mikrokontroler AVR z obsługą USB. Zazwyczaj będą one również zawierać niektóre elementy interfejsu / poziomu tłumaczenia / ochrony / izolacji. To naprawdę zależy od producenta, wszystkie są zastrzeżone i wzajemnie niekompatybilne. Zasadniczo potrzebujesz kabla, który działa z każdym oprogramowaniem, którego potrzebujesz. Jeśli wszystko czego potrzebujesz to OpenOCD, to kabel oparty na FTDI jest w porządku. Ale jeśli chcesz użyć, powiedz Xilinx ChipScope? Następnie musisz zapłacić za prawdziwą rzecz z Xilinx lub chińską podróbkę.
Linki, które posiadasz, nie są prostymi kablami JTAG, są znacznie bardziej wyspecjalizowane. Osobiście uważałbym je za kompletny sprzęt testowy. Są to w zasadzie wyspecjalizowane analizatory protokołów. Są zaprojektowane do współpracy ze specjalistycznym sprzętem do śledzenia, który jest wbudowany w testowane urządzenie. Sprzęt do śledzenia różni się od JTAG. Jego celem jest zapisanie pełnego śladu wykonania uruchomionego oprogramowania (tj. Wszystkich pobranych gałęzi) we wszystkich rdzeniach wykonania i przekazanie go do zewnętrznego systemu zbierania śladów (odpowiednie pole) za pośrednictwem szybkiej magistrali. Śledzenie jest następnie analizowane offline. NIE jest to to samo, co debugowanie, które można wykonać za pomocą JTAG, ustawiając punkty przerwania i przechodząc przez kod. Kolekcja śledzenia powinna być całkowicie przezroczysta dla uruchomionego programu (bez punktów przerwania lub dodanego kodu). Ponieważ testowany procesor może wykonywać kilkaset milionów instrukcji na sekundę, zapisywanie powstającego śladu wymaga dużej przepustowości i szybkiej pamięci. Połączone urządzenia obsługują protokół Aurora (prawdopodobnie między innymi), który jest zakodowanym szybkim protokołem szeregowym 8b / 10b, nieco podobnym do USB 3, szeregowego ATA, szeregowego gigabit / 10G ethernet i PCIe. Jest w stanie przesyłać dane z szybkością 6,25 Gb / s, znacznie więcej niż może obsługiwać łącze USB z powrotem do komputera, więc przechwycone dane muszą być przechowywane we wbudowanej pamięci RAM do analizy offline. Urządzenia te będą zawierać raczej wysokiej klasy układy FPGA z wewnętrznymi szybkimi deserializatorami do przechwytywania danych wraz z dość dużą ilością (kilka GB) szybkiej pamięci DRAM,
źródło
Różnica polega na oprogramowaniu i funkcjonalności, które mają duży wpływ na sprzęt.
Kable FTDI JTAG używają zestawu poleceń do generowania sygnałów JTAG. Są to polecenia bardzo niskiego poziomu, często wnikające w dokładne szczegóły działania i działania statemachine JTAG. Logika wysyłania poprawnych poleceń do konfiguracji odbywa się na hoście debugującym na komputerze.
Jest to funkcjonalny, tani sprzęt, darmowe oprogramowanie (GNU GCC + GDB + OpenOCD) itp. Jest wystarczająco elastyczny (ze względu na zestaw poleceń niskiego poziomu), że istnieją porty do debugowania ARM, programowania FPGA lub ogólnego skanowania łańcucha JTAG .
Kable komercyjne są znacznie bardziej specyficzne dla platformy i często zawierają logikę w kablu. Pozwala to programowi PC rozmawiać z urządzeniem w bardziej abstrakcyjny sposób, który może być szybszy.
Na przykład: spójrz na protokół USB JLINK . Zawiera polecenia takie jak EMU_CMD_WRITE_MEM_ARM79. Kable FTDI mogą również wykonywać to polecenie, ale jest ono tłumaczone po stronie komputera na niskopoziomowe polecenia JTAG rozumiane przez kabel FTDI. Oznacza to również, że polecenie wysokiego poziomu (zapisz trochę pamięci) jest podzielone na wiele innych poleceń podrzędnych, które JLINK może wykonać na swoim kablu. Może to skutkować lepszym opóźnieniem (biorąc pod uwagę ograniczenia USB) i / lub wyższą prędkością.
To zależy także od komercyjnych dostawców IDE, który kabel obsługuje, i jest bardziej prawdopodobne, że obsługiwany jest kabel komercyjny. Z drugiej strony, bardziej prawdopodobne jest, że darmowe IDE będą obsługiwać tanie kable debugujące FTDI.
Niektóre programy komercyjne zawierają także obsługę punktów przerwania kodu, w których można ustawić więcej punktów przerwania kodu niż pozwala na to sprzęt.
Korzystanie z funkcji śledzenia niektórych mikrokontrolerów wymaga bardzo szybkiego sprzętu do przechwycenia 4-bitowej magistrali równoległej. Sprzęt obsługujący tę funkcję często zawiera układ FPGA.
źródło