Sự khác biệt giữa trình gỡ lỗi JTAG thương mại và trình gỡ lỗi FT2232H OpenOCD mã nguồn mở là gì?


10

Tôi đã thấy một vài trình gỡ lỗi JTAG thương mại như:

  1. Trình phân tích trên chip iC6000 (có hỗ trợ giao thức Aurora)
  2. Lauterbach - Công cụ phát triển vi xử lý

Và trình gỡ lỗi JTAG dựa trên OpenOCD FT2232H:

  1. Bánh đà
  2. NGX ARM USB JTAG

Tại sao các trình gỡ lỗi thương mại này có hộp lớn so với các trình gỡ lỗi FT2232H JTAG chỉ có kích thước thẻ tín dụng nhỏ PCB? Những phần cứng bổ sung nào có mặt bên trong các trình gỡ lỗi thương mại và những phần này có thể giúp những phần này?


3
Tôi đang bỏ phiếu để đóng câu hỏi này ngoài chủ đề vì thông tin bắt buộc có trên các trang web của nhà sản xuất.
Leon Heller

Có lẽ tôi nên đặt câu hỏi theo một cách khác
robomon

Câu trả lời:


7

Cáp JTAG có thể được xây dựng xung quanh tất cả các loại công cụ. Ví dụ, cáp Xilinx JTAG có chip Cypress và FPGA. Cáp Atmel thường chứa một bộ vi điều khiển AVR có hỗ trợ USB. Chúng cũng thường chứa một số thành phần dịch / bảo vệ / cách ly giao diện / cấp độ. Nó thực sự phụ thuộc vào nhà sản xuất, tất cả chúng đều độc quyền và không tương thích lẫn nhau. Nói chung, bạn cần phải có cáp hoạt động với bất kỳ phần mềm nào bạn cần sử dụng. Nếu tất cả những gì bạn cần là OpenOCD, thì cáp dựa trên FTDI vẫn ổn. Nhưng nếu bạn muốn sử dụng, hãy nói Xilinx ChipScope? Sau đó, bạn cần phải trả tiền cho những điều thực sự từ Xilinx hoặc một cú hích của Trung Quốc.

Các liên kết bạn có không dành cho cáp JTAG đơn giản, chúng chuyên dụng hơn nhiều. Cá nhân tôi sẽ coi đây là một thiết bị thử nghiệm đầy đủ. Họ về cơ bản là các máy phân tích giao thức chuyên biệt. Chúng được thiết kế để giao diện với phần cứng theo dõi chuyên dụng được tích hợp vào thiết bị được thử nghiệm. Phần cứng dấu vết khác với JTAG. Mục đích của nó là ghi lại dấu vết thực thi hoàn chỉnh của phần mềm đang chạy (tức là tất cả các nhánh được lấy) trên tất cả các lõi thực thi và chuyển nó đến hệ thống thu thập dấu vết bên ngoài (hộp được đề cập) trên một chiếc xe buýt tốc độ cao. Dấu vết sau đó được phân tích ngoại tuyến. Điều này KHÔNG giống như gỡ lỗi có thể được thực hiện trên JTAG bằng cách đặt các điểm dừng và bước qua mã. Bộ sưu tập dấu vết được cho là hoàn toàn trong suốt đối với chương trình đang chạy (không có điểm dừng hoặc mã được thêm vào). Vì bộ xử lý đang thử nghiệm có thể thực hiện vài trăm triệu lệnh mỗi giây, nên việc lưu trữ dấu vết khi nó được sản xuất đòi hỏi rất nhiều băng thông và bộ nhớ nhanh. Các thiết bị được liên kết hỗ trợ giao thức Aurora (có thể là các thiết bị khác), là giao thức nối tiếp tốc độ cao được mã hóa 8b / 10b, hơi giống với USB 3, ATA nối tiếp, ethernet gigabit / 10G nối tiếp và PCIe. Nó có khả năng truyền dữ liệu ở tốc độ 6,25 Gbps, nhiều hơn đáng kể so với những gì liên kết USB trở lại PC có thể xử lý, do đó dữ liệu đã chụp phải được lưu trữ trong RAM trên bo mạch để phân tích ngoại tuyến. Các thiết bị này sẽ chứa các GPU khá cao cấp với bộ giải mã tốc độ cao bên trong để thu thập dữ liệu cùng với DRAM khá nhanh (vài GB),


8GB cho dấu vết trên iC6000, nhiều hơn cả PC gramma của bạn :-) Và băng thông 6,25 Gbps qua cáp Aurora.
Fizz

6

Sự khác biệt là ở phần mềm & chức năng, ảnh hưởng rất lớn đến phần cứng.

Cáp FTDI JTAG sử dụng bộ lệnh để tạo tín hiệu JTAG. Đây là những lệnh cấp độ rất thấp, thường đi sâu vào chi tiết chính xác cách thức hoạt động của JTAG stHRachine và được vận hành. Logic gửi các lệnh chính xác cho thiết lập của bạn được thực hiện trên máy chủ gỡ lỗi trên PC của bạn.

Đây là chức năng, phần cứng giá rẻ, phần mềm miễn phí (GNU GCC + GDB + OpenOCD), v.v ... Nó đủ linh hoạt (vì bộ lệnh cấp thấp) có các cổng để gỡ lỗi ARM, lập trình FPGA hoặc quét chuỗi JTAG chung .

Các cáp thương mại cụ thể hơn nhiều đối với một nền tảng và thường chứa logic trong cáp. Điều này cho phép chương trình PC nói chuyện với thiết bị theo cách trừu tượng hơn có thể nhanh hơn.

Ví dụ: nhìn vào giao thức JLINK USB . Nó chứa các lệnh như EMU_CMD_WRITE_MEM_ARM79. Cáp FTDI cũng có thể thực hiện lệnh này, nhưng nó được dịch ở phía PC sang lệnh JTAG cấp thấp mà cáp FTDI hiểu được. Điều đó cũng có nghĩa là lệnh cấp cao (ghi một số bộ nhớ) được chia thành nhiều lệnh phụ khác, mà JLINK có thể tự thực hiện trên cáp. Điều này có thể dẫn đến độ trễ tốt hơn (có tính đến các hạn chế của USB) và / hoặc tốc độ cao hơn.

Điều này cũng tùy thuộc vào các nhà cung cấp thương mại IDE mà họ hỗ trợ cáp và nhiều khả năng cáp thương mại được hỗ trợ. Mặt khác, nhiều khả năng IDE miễn phí sẽ hỗ trợ các cáp gỡ lỗi FTDI giá rẻ.

Một số phần mềm thương mại cũng chứa hỗ trợ cho các điểm dừng mã phần mềm, nơi bạn có thể đặt nhiều điểm dừng mã hơn phần cứng cho phép.

Sử dụng chức năng theo dõi của một số bộ vi điều khiển đòi hỏi phần cứng rất nhanh để thu được bus song song 4 bit. Phần cứng có khả năng của tính năng này thường chứa một FPGA để làm như vậy.


Không nói gì về băng thông này có thể xử lý; một trong những Xilinx cao cấp mà OP tìm hiểu về (iC6000) có thể thực hiện các dấu vết 6,25 Gbps với giao thức Aurora, mà (1) không được hỗ trợ bởi Flyswatters và ngay cả khi đó, băng thông này sẽ xử lý được băng thông nào? Và bộ nhớ trong này có: 8GB cho dấu vết trên iC6000.
Fizz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.