다음과 같은 몇 가지 상용 JTAG 디버거를 보았습니다.
그리고 OpenOCD FT2232H 기반 JTAG 디버거 :
신용 카드 크기가 작은 PCB를 가진 FT2232H JTAG 디버거와 비교하여이 상업용 디버거가 왜 큰 박스입니까? 상용 디버거에는 어떤 추가 하드웨어가 있으며 어떤 부분 디버깅에 도움이됩니까?
다음과 같은 몇 가지 상용 JTAG 디버거를 보았습니다.
그리고 OpenOCD FT2232H 기반 JTAG 디버거 :
신용 카드 크기가 작은 PCB를 가진 FT2232H JTAG 디버거와 비교하여이 상업용 디버거가 왜 큰 박스입니까? 상용 디버거에는 어떤 추가 하드웨어가 있으며 어떤 부분 디버깅에 도움이됩니까?
답변:
JTAG 케이블은 모든 종류의 물건 주위에 구축 될 수 있습니다. 예를 들어 Xilinx JTAG 케이블에는 Cypress 칩과 FPGA가 있습니다. Atmel 케이블에는 일반적으로 USB 지원 AVR 마이크로 컨트롤러가 포함되어 있습니다. 또한 일반적으로 일부 인터페이스 / 레벨 변환 / 보호 / 분리 구성 요소가 포함됩니다. 실제로 제조업체에 따라 다르며 모두 독점적이며 상호 호환되지 않습니다. 일반적으로 필요한 소프트웨어와 작동하는 케이블이 필요합니다. OpenOCD 만 있으면 FTDI 기반 케이블이 적합합니다. 그러나 Xilinx ChipScope를 사용하고 싶다면? 그런 다음 Xilinx의 실제 물건이나 중국식 넉 오프 비용을 지불해야합니다.
당신이 가진 링크는 단순한 JTAG 케이블을위한 것이 아니라 훨씬 더 전문적입니다. 나는 개인적으로 이것들이 완전한 테스트 장비라고 생각합니다. 기본적으로 특수한 프로토콜 분석기입니다. 테스트 대상 장치에 통합 된 특수 추적 하드웨어와 인터페이스하도록 설계되었습니다. 추적 하드웨어는 JTAG와 다릅니다. 모든 실행 코어에서 실행중인 소프트웨어 (예 : 모든 분기)의 전체 실행 추적을 기록하고 고속 버스를 통해 외부 추적 수집 시스템 (문제의 상자)에 전달하는 것이 목적입니다. 그런 다음 추적을 오프라인으로 분석합니다. 이는 중단 점을 설정하고 코드를 단계별로 실행하여 JTAG를 통해 수행 할 수있는 디버깅과 다릅니다. 추적 수집은 실행중인 프로그램에 완전히 투명해야합니다 (브레이크 포인트 또는 추가 된 코드 없음). 테스트중인 프로세서는 초당 수억 개의 명령어를 실행할 수 있기 때문에 생성 된 트레이스를 저장하려면 많은 대역폭과 빠른 메모리가 필요합니다. 연결된 장치는 USB 3, 직렬 ATA, 직렬 기가비트 / 10G 이더넷 및 PCIe와 다소 유사한 8b / 10b 인코딩 고속 직렬 프로토콜 인 Aurora 프로토콜 (아마도)을 지원합니다. USB 링크가 PC로 다시 처리 할 수있는 것보다 훨씬 많은 6.25Gbps로 데이터를 전송할 수 있으므로 캡처 된 데이터는 온보드 RAM에 저장해야 오프라인 분석이 가능합니다. 이 디바이스에는 고속 디시리얼라이저가 내장 된 고급 FPGA가 포함되어있어 데이터를 캡처 할 수 있으며 (약 GB) 고속 DRAM,
차이점은 소프트웨어 및 기능면에서 하드웨어에 큰 영향을 미칩니다.
FTDI JTAG 케이블은 명령 세트를 사용하여 JTAG 신호를 생성합니다. 이것들은 매우 낮은 수준의 명령이며, 종종 JTAG 상태 머신이 작동하고 작동하는 방식에 대한 정확한 세부 사항으로 이동합니다. 설정에 대한 올바른 명령을 보내는 논리는 PC의 디버그 호스트에서 수행됩니다.
기능적이고 저렴한 하드웨어, 무료 소프트웨어 (GNU GCC + GDB + OpenOCD) 등입니다. ARM 디버깅, FPGA 프로그래밍 또는 일반 JTAG 체인 스캔을위한 포트가있을 정도로 유연합니다 (저수준 명령 세트로 인해). .
상용 케이블은 플랫폼에 훨씬 더 구체적이며 종종 케이블 내에 로직을 포함합니다. 이를 통해 PC 프로그램은보다 추상적 인 방식으로 장치와 더 빠르게 통신 할 수 있습니다.
예를 들어 : JLINK USB 프로토콜을보십시오 . EMU_CMD_WRITE_MEM_ARM79와 같은 명령이 포함되어 있습니다. FTDI 케이블은이 명령을 실행할 수도 있지만 PC 측에서는 FTDI 케이블이 이해하는 저수준 JTAG 명령으로 변환됩니다. 또한 높은 수준의 명령 (일부 메모리 쓰기)이 더 많은 하위 명령으로 나뉘어 JLINK가 자체 케이블에서 수행 할 수 있음을 의미합니다. 이로 인해 대기 시간이 향상되고 (USB 제한을 고려하여) 속도가 빨라질 수 있습니다.
또한 지원하는 케이블은 IDE 상업용 공급 업체에 따라 다르며 상업용 케이블이 지원 될 가능성이 높습니다. 반면에 무료 IDE는 저렴한 FTDI 디버그 케이블을 지원할 가능성이 높습니다.
일부 상용 소프트웨어에는 소프트웨어 코드 중단 점에 대한 지원도 포함되어 있으며 하드웨어에서 허용하는 것보다 더 많은 코드 중단 점을 설정할 수 있습니다.
일부 마이크로 컨트롤러의 추적 기능을 사용하려면 4 비트 병렬 버스를 캡처하기 위해 매우 빠른 하드웨어가 필요합니다. 이 기능을 갖춘 하드웨어에는 종종 FPGA가 포함되어 있습니다.