Gỡ lỗi JTAG vs SWD


41

Sau khi lướt qua bài viết này , tôi tự hỏi lợi ích của việc gỡ lỗi SWD so với gỡ lỗi JTAG là gì?

Tôi hiểu SWD sử dụng ít dây / chân hơn, chiếm ít không gian hơn v.v ... Nhưng làm thế nào để nó phát huy về hiệu suất, tính năng và giá thành của các thiết bị lập trình / gỡ lỗi phần cứng? Mã vẫn có thể bị phá vỡ / tạm dừng và bước qua trong IDE như Eclipse?

Một chip ARM có thể được lập trình bằng giao diện SWD, như tôi tin có thể được thực hiện trong JTAG không?


Các chip dựa trên ARM với các lõi gần đây hơn (ví dụ Cortex) có thể được lập trình và gỡ lỗi thông qua SWD.
B Pete

@BPete: Tôi thấy rằng với SWD, thật khó để gỡ lỗi các chip dựa trên ST sử dụng chế độ ngủ; bảng hiện tại của chúng tôi không có sẵn các chân cho JTAG, nhưng tôi đã tự hỏi liệu JTAG có thể tốt hơn trong vấn đề đó không?
supercat

2
Cái này (SWD) trông hơi giống với sự can thiệp của Spy Bi-Wire mà TI đưa vào một tập hợp con của bộ xử lý MSP430 của họ. Đó là một JTAG 2 dây giống nhau (cộng với nguồn và mặt đất) với SBWTCLK và SBWTDIO được ghép trên hai chân không GPIO (TEST và RST / NMI) trên một thiết bị mẫu. Được hỗ trợ bởi devkit EZ430. Và nó (SBW) không hỗ trợ bước và điểm dừng! Tôi không biết liệu ARM của TI có cùng giao diện hay không, nhưng sẽ rất thú vị nếu có đủ điểm chung giữa chúng để chia sẻ các công cụ lập trình / gỡ lỗi.
Brian Drumond

Liên kết bài viết của bạn đã chết, nhưng có lẽ đây là bài viết? arm.com/files/pdf/Serial_Wire_Debug.pdf
Gabriel Staples

Câu trả lời:


12

SWD sẽ có thể lập trình chipset ARM cộng với bạn có thể gỡ lỗi và thêm các điểm dừng. Một điều tốt khác về SWD là bạn có thể sử dụng trình xem dây nối tiếp cho các câu lệnh printf của mình để gỡ lỗi. Tôi chỉ sử dụng nó với trình biên dịch Keil.


Nhìn vào liên kết này trên trình xem dây nối tiếp. keil.com/doad/files/swv_on_cortex-m3.pdf
user468662

37

Điện

  • Số lượng pin
    • JTAG yêu cầu 4 đường tín hiệu
    • SWD chỉ cần 2 đường tín hiệu
    • Giao diện JTAG 2 dây được chỉ định trong IEEE 1149.7 giảm số lượng pin nhưng dường như không có sẵn trên nhiều IC. Nó cũng làm giảm băng thông.
  • Cấu trúc liên kết
    • JTAG sử dụng cấu hình chuỗi daisy cho các dòng dữ liệu giữa các chip. Do đó, tốc độ của JTAG bị giới hạn bởi chip chậm nhất trên chuỗi. Thiết lập lại và đường rõ ràng của nó được nối (không bị xiềng xích) tuy nhiên cho phép khả năng tương tác thông qua SWDJ-DP (xem thảo luận bên dưới).
    • JTAG 2 dây cho phép cấu trúc liên kết sao, nhưng nó không được sử dụng thường xuyên.
    • SWD cho phép cấu trúc liên kết sao

Chức năng

  • SWD là một giao thức cụ thể của ARM được thiết kế dành riêng cho gỡ lỗi vi mô.
  • JTAG (Nhóm thử nghiệm hành động chung) được thiết kế chủ yếu để thử nghiệm chip và bo mạch. Nó được sử dụng để quét ranh giới , kiểm tra lỗi trong chip / bảng trong sản xuất. Gỡ lỗi và flash micros là một sự phát triển trong ứng dụng của nó theo thời gian.
  • JTAG được sử dụng cho nhiều kiến ​​trúc vi điều khiển / bộ xử lý ngoài ARM.

thảo luận chung

JTAG được hỗ trợ rộng rãi hơn, kể từ năm 2017, bởi các micros, các lập trình viên và dây chuyền sản xuất không phải ARM. Các lập trình viên cho JTAG có thể có giá rẻ dưới dạng các đột phá FT 232H [*] và các thiết bị lập trình khác như vậy. Tuy nhiên, SWD có một lợi thế khác biệt về tốc độ và các lĩnh vực khác trong việc gỡ lỗi chip ARM.

Do sự phân chia về bản chất của JTAG trong thử nghiệm và SWD trong gỡ lỗi, ARM cung cấp SWJ-DP (cổng gỡ lỗi nối tiếp / jtag) thông qua công nghệ CoreSight của nó ánh xạ các chân SWD vào đồng hồ của JTAG và đặt lại các dòng. Do đó, SWJ-DP cho phép sử dụng cả hai giao thức trên cùng một kết nối vật lý mặc dù không nhất thiết phải cùng lúc hoặc với cùng các lập trình viên như JTAG và SWD sẽ phải được ghép kênh kịp thời.

Tài liệu tham khảo hữu ích



7

Tôi có thể hơi muộn cho OP, nhưng có lẽ nó sẽ hữu ích cho một số người khác có cùng câu hỏi. Vì vậy, ở đây chúng tôi đi (kinh nghiệm cá nhân): Có thể lập trình và gỡ lỗi (tìm nạp bộ nhớ / bản đồ đăng ký, ngắt, chạy từ điểm cụ thể, v.v.) với SWD. Sử dụng Eclipse ở đây với GDB thông qua J-Link EDU, với giá ~ 50 Euro. Có một số lỗi (đặt lại mục tiêu thông qua trình gỡ lỗi, đôi khi sẽ không kết nối hoặc tìm nạp bản đồ), nhưng nó tương đối rẻ và có thể sử dụng được, khi bạn đã làm quen với những điều kỳ quặc


7

Câu hỏi cũ, nhưng không có câu trả lời nào đề cập đến việc so sánh hiệu suất. Mặc dù tính năng được thiết lập giữa SWD và JTAG (khi sử dụng CoreSight DAP) gần như giống nhau, các chuỗi SWD ngắn hơn khoảng 10% so với các chuỗi JTAG tương đương.

Không có sự mất mát về băng thông dữ liệu trong hầu hết các trường hợp (đặc biệt là truyền phát đọc hoặc ghi trong đó băng thông là quan trọng nhất).

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.