JTAG กับการดีบัก SWD


41

หลังจากอ่านบทความนี้ฉันสงสัยว่าประโยชน์ของการดีบัก SWD ในการดีบัก JTAG คืออะไร

ฉันเข้าใจว่า SWD ใช้สายไฟ / พินน้อยกว่ากินพื้นที่น้อยลง แต่มันเล่นในแง่ของประสิทธิภาพคุณสมบัติและค่าใช้จ่ายของอุปกรณ์โปรแกรมเมอร์ / อุปกรณ์ดีบั๊กได้อย่างไร รหัสยังคงสามารถแตกหักแหลม / หยุดชั่วคราวและก้าวผ่านใน IDE ของเช่น Eclipse?

ชิป ARM สามารถตั้งโปรแกรมโดยใช้อินเตอร์เฟส SWD อย่างที่ฉันเชื่อว่าสามารถทำได้ใน JTAG หรือไม่


ชิปที่ใช้ ARM ซึ่งมีคอร์ล่าสุด (เช่น Cortex) สามารถตั้งโปรแกรมและดีบั๊กผ่านทาง SWD
B Pete

@BPete: ฉันพบว่า SWD นั้นยากที่จะดีบัก ST-based chips ที่ใช้โหมด sleep; บอร์ดปัจจุบันของเราไม่มีหมุดสำหรับ JTAG แต่ฉันสงสัยว่า JTAG อาจดีกว่าในเรื่องนั้นหรือไม่
supercat

2
(SWD) นี้ดูเหมือนว่า Spy Bi-Wire จะรบกวนการเชื่อมต่อที่ TI วางไว้ในชุดย่อยของโปรเซสเซอร์ MSP430 ของพวกเขา มันเป็น JTAG แบบ 2 สาย (บวกกับพลังงานและกราวด์) พร้อม SBWTCLK และ SBWTDIO มัลติเพล็กซ์บนพินที่ไม่ใช่ GPIO สองตัว (TEST และ RST / NMI) บนอุปกรณ์ตัวอย่าง รองรับ EZ430 devkit และมันก็สนับสนุนการก้าวและจุดหยุด! ฉันไม่รู้ว่า ARM ของตัวเอง TI นั้นมีอินเตอร์เฟซเหมือนกันหรือไม่ แต่มันก็น่าสนใจถ้ามีคนธรรมดาพอที่จะแบ่งปันการเขียนโปรแกรม / เครื่องมือดีบั๊ก
Brian Drummond

ลิงก์บทความของคุณเสียชีวิต แต่อาจเป็นเพราะบทความนี้ arm.com/files/pdf/Serial_Wire_Debug.pdf
Gabriel Staples

คำตอบ:


12

SWD ควรจะสามารถเขียนโปรแกรมชิปเซ็ต ARM รวมทั้งคุณสามารถดีบักและเพิ่มเบรกพอยต์ ข้อดีอีกอย่างของ SWD คือคุณสามารถใช้ serial wire viewer สำหรับคำสั่ง printf ของคุณสำหรับการดีบั๊ก ฉันใช้มันกับคอมไพเลอร์ Keil เท่านั้น


ดูลิงค์นี้ในเครื่องมือดูลวดแบบอนุกรม keil.com/download/files/swv_on_cortex-m3.pdf
user468662

37

ไฟฟ้า

  • จำนวนพิน
    • JTAG ต้องการ 4 สัญญาณสาย
    • SWD ต้องการเพียง 2 สายสัญญาณ
    • อินเตอร์เฟส JTAG แบบ 2 สายที่ระบุใน IEEE 1149.7 จะลดจำนวนพิน แต่ดูเหมือนจะไม่สามารถใช้งานได้ในหลาย ๆ ไอซี นอกจากนี้ยังลดแบนด์วิดท์
  • โทโพโลยี
    • JTAG ใช้การกำหนดค่าโซ่เดซีสำหรับสายข้อมูลระหว่างชิป ความเร็วของ JTAG นั้นถูก จำกัด ด้วยชิปที่ช้าที่สุดในห่วงโซ่ เส้นรีเซ็ตและสายที่ชัดเจนนั้นจะถูกบัส (ไม่ถูกผูกมัด) ซึ่งอนุญาตให้ใช้งานร่วมกันผ่านทาง SWDJ-DP (ดูการสนทนาด้านล่าง)
    • JTAG 2 สายช่วยให้ทอพอโลยีแบบดาว แต่ไม่ได้ใช้บ่อย
    • SWD ช่วยให้ทอพอโลยีดวงดาว

ตามหน้าที่

  • SWD เป็นโปรโตคอลเฉพาะ ARM ออกแบบมาโดยเฉพาะสำหรับการดีบักแบบไมโคร
  • JTAG (Joint Test Action Group) ได้รับการออกแบบสำหรับการทดสอบชิปและบอร์ดเป็นส่วนใหญ่ มันใช้สำหรับการสแกนขอบเขตตรวจสอบความผิดพลาดในชิป / บอร์ดในการผลิต การดีบั๊กและการกะพริบไมโครซอฟท์เป็นวิวัฒนาการในการประยุกต์ใช้ในช่วงเวลาหนึ่ง
  • JTAG ใช้งานสำหรับสถาปัตยกรรมไมโครคอนโทรลเลอร์หลายตัว / โปรเซสเซอร์นอกเหนือจาก ARM

พูดคุยเรื่องทั่วไป

JTAG ได้รับการสนับสนุนอย่างกว้างขวางมากขึ้นในปี 2560 โดยไมโครคอนโทรลเลอร์ที่ไม่ใช่ ARM โปรแกรมเมอร์และสายการผลิต โปรแกรมเมอร์สำหรับ JTAG นั้นมีราคาถูกในรูปแบบของ FT232H [*] breakouts และอุปกรณ์การเขียนโปรแกรมอื่น ๆ อย่างไรก็ตาม SWD มีข้อได้เปรียบที่แตกต่างกันในด้านความเร็วและด้านอื่น ๆ ในการดีบักชิป ARM

เนื่องจากการแยกในลักษณะของ JTAG ในการทดสอบและ SWD ในการดีบัก ARM จึงให้ SWJ-DP (พอร์ตอนุกรมลวด / jtag debug พอร์ต) ผ่านเทคโนโลยี CoreSight ซึ่งจับคู่หมุด SWD บนนาฬิกาของ JTAG และสายรีเซ็ต ดังนั้น SWJ-DP จึงอนุญาตให้ใช้ทั้งสองโปรโตคอลในการเชื่อมต่อทางกายภาพเดียวกัน แต่ไม่จำเป็นในเวลาเดียวกันหรือด้วยโปรแกรมเมอร์เดียวกันกับ JTAG และ SWD จะต้องมีมัลติเพล็กซ์ในเวลา

การอ้างอิงที่มีประโยชน์


1
ลิงก์ที่มีประโยชน์อีก 2 รายการ: 1) developer.arm.com/products/architecture/cpu-architecture/… , 2) arm.com/files/pdf/Serial_Wire_Debug.pdf
Gabriel Staples

7

ฉันอาจจะสายเกินไปสำหรับ OP แต่อาจจะมีประโยชน์สำหรับคนอื่นที่มีคำถามเดียวกัน ดังนั้นไปเลย (ประสบการณ์ส่วนตัว): เป็นไปได้ที่จะตั้งโปรแกรมและแก้ไขข้อบกพร่อง (ดึงข้อมูลหน่วยความจำ / แผนที่ลงทะเบียนแตกวิ่งจากจุดเฉพาะ ฯลฯ ) ด้วย SWD ใช้ Eclipse ที่นี่กับ GDB ผ่าน J-Link EDU ซึ่งมีราคาประมาณ ~ 50 ยูโร มีข้อบกพร่องบางอย่าง (รีเซ็ตเป้าหมายผ่านดีบักเกอร์บางครั้งจะไม่เชื่อมต่อหรือดึงข้อมูลแผนที่) แต่มันค่อนข้างถูกและใช้งานได้เมื่อคุณคุ้นเคยกับเรื่องแปลก ๆ


7

คำถามเก่า แต่ไม่มีคำตอบใดที่แสดงถึงการเปรียบเทียบประสิทธิภาพ แม้ว่าฟีเจอร์ที่ตั้งค่าระหว่าง SWD และ JTAG (เมื่อใช้ CoreSight DAP) นั้นใกล้เคียงกันมากพอลำดับของ SWD นั้นสั้นกว่าลำดับ JTAG ประมาณ 10%

ในกรณีส่วนใหญ่แบนด์วิดธ์ข้อมูลจะไม่สูญหาย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.