อะไรคือข้อแตกต่างระหว่างดีบักเกอร์ JTAG เชิงพาณิชย์และโอเพ่นซอร์ส FT2232H ดีบัก OpenOCD?


10

ฉันเคยเห็นตัวแก้ไขข้อบกพร่อง JTAG เชิงพาณิชย์บางอย่างเช่น:

  1. iC6000 On-chip Analyzer (พร้อมการรองรับโปรโตคอล Aurora)
  2. Lauterbach - เครื่องมือพัฒนาไมโครโปรเซสเซอร์

และตัวแก้จุดบกพร่อง JTAG ที่ใช้ OpenOCD FT2232H:

  1. แมงวัน
  2. NGX ARM USB JTAG

ทำไมกล่อง debuggers เชิงพาณิชย์ขนาดใหญ่ถึงเมื่อเทียบกับ FT2232H JTAG debuggers ซึ่งมีเพียง PCB ขนาดบัตรเครดิตขนาดเล็ก? มีฮาร์ดแวร์เพิ่มเติมใดบ้างที่อยู่ในตัวแก้ไขข้อบกพร่องทางการค้าและส่วนใดของการดีบักที่สามารถช่วยได้


3
ฉันลงคะแนนให้ปิดคำถามนี้เป็นนอกหัวข้อเนื่องจากข้อมูลที่ต้องการอยู่ในเว็บไซต์ของผู้ผลิต
Leon Heller

บางทีฉันควรถามคำถามในวิธีที่ต่างออกไป
robomon

คำตอบ:


7

สายเคเบิล JTAG สามารถสร้างได้ทุกสิ่ง ตัวอย่างเช่นสาย Xilinx JTAG มีชิป Cypress และ FPGA โดยทั่วไปแล้วสายเคเบิล Atmel มีไมโครคอนโทรลเลอร์ AVR พร้อมรองรับ USB พวกเขามักจะมีส่วนประกอบการแปล / การป้องกัน / แยก / อินเตอร์เฟส มันขึ้นอยู่กับผู้ผลิตพวกเขาเป็นกรรมสิทธิ์และเข้ากันไม่ได้ โดยทั่วไปคุณต้องมีสายเคเบิลที่ใช้งานได้กับซอฟต์แวร์ที่คุณต้องการใช้ หากทุกอย่างที่คุณต้องการคือ OpenOCD แสดงว่าสายเคเบิล FTDI นั้นใช้งานได้ดี แต่ถ้าคุณต้องการใช้พูด Xilinx ChipScope ถ้าอย่างนั้นคุณต้องจ่ายให้ทั้งของจริงจาก Xilinx หรือน็อคเอาต์แบบจีน

ลิงค์ที่คุณไม่ได้มีไว้สำหรับสาย JTAG ธรรมดา ๆ พวกมันมีความเชี่ยวชาญมากกว่า โดยส่วนตัวฉันจะถือว่าสิ่งเหล่านี้เป็นอุปกรณ์ทดสอบเต็มรูปแบบ พวกเขาเป็นผู้เชี่ยวชาญวิเคราะห์โปรโตคอลโดยเฉพาะ พวกเขาถูกออกแบบมาเพื่อติดต่อกับฮาร์ดแวร์ติดตามพิเศษที่รวมอยู่ในอุปกรณ์ภายใต้การทดสอบ ฮาร์ดแวร์การติดตามนั้นแตกต่างจาก JTAG มีวัตถุประสงค์คือเพื่อบันทึกการติดตามการดำเนินการที่สมบูรณ์ของซอฟต์แวร์ที่กำลังทำงาน (เช่นทุกสาขาที่ใช้) ข้ามคอร์การประมวลผลทั้งหมดและส่งไปยังระบบการรวบรวมข้อมูลการติดตามภายนอก (กล่องคำถาม) ผ่านบัสความเร็วสูง การติดตามจะถูกวิเคราะห์แบบออฟไลน์ สิ่งนี้ไม่เหมือนกับการดีบักที่สามารถทำได้บน JTAG โดยการตั้งค่าเบรกพอยต์และก้าวผ่านโค้ด การรวบรวมการติดตามควรจะโปร่งใสอย่างสมบูรณ์กับโปรแกรมที่กำลังทำงาน (ไม่มีจุดพักหรือรหัสที่เพิ่ม) เนื่องจากโปรเซสเซอร์ที่อยู่ภายใต้การทดสอบสามารถดำเนินการตามคำสั่งได้หลายร้อยล้านคำสั่งต่อวินาทีการจัดเก็บการติดตามเนื่องจากผลิตขึ้นนั้นต้องใช้แบนด์วิดท์และหน่วยความจำที่รวดเร็ว อุปกรณ์ที่เชื่อมโยงรองรับโปรโตคอล Aurora (อาจอยู่ในกลุ่มอื่น ๆ ) ซึ่งเป็นโปรโตคอลอนุกรมความเร็วสูงที่เข้ารหัส 8b / 10b ค่อนข้างคล้ายกับ USB 3, serial ATA, serial ATA, serial gigabit / 10G ethernet และ PCIe มีความสามารถในการถ่ายโอนข้อมูลที่ 6.25 Gbps มากกว่าสิ่งที่ลิงค์ USB กลับไปที่พีซีสามารถจัดการได้ดังนั้นข้อมูลที่บันทึกไว้จะต้องถูกเก็บไว้ใน RAM onboard สำหรับการวิเคราะห์แบบออฟไลน์ อุปกรณ์เหล่านี้จะมี FPGAs ระดับค่อนข้างสูงพร้อมกับดีซีเรียลไลเซอร์ความเร็วสูงภายในเพื่อเก็บข้อมูลพร้อมกับ DRAM ที่รวดเร็วหลายบิต (หลาย GB)


8GB สำหรับการติดตามบน iC6000 มากกว่าพีซีของคุณแกรมม่า :-) และแบนด์วิดท์ 6.25 Gbps ผ่านสายออโรร่า
Fizz

6

ความแตกต่างคือในซอฟต์แวร์ & ฟังก์ชันซึ่งมีผลต่อฮาร์ดแวร์อย่างมาก

สายเคเบิล FTDI JTAG ใช้ชุดคำสั่งเพื่อสร้างสัญญาณ JTAG คำสั่งเหล่านี้อยู่ในระดับต่ำมากซึ่งมักจะพูดถึงรายละเอียดที่แน่นอนว่า JTAG statemachine ทำงานและทำงานอย่างไร ตรรกะของการส่งคำสั่งที่ถูกต้องสำหรับการตั้งค่าของคุณเสร็จสิ้นในโฮสต์การดีบักบนพีซีของคุณ

นี่คือฮาร์ดแวร์ที่ใช้งานได้ราคาถูกซอฟต์แวร์ฟรี (GNU GCC + GDB + OpenOCD) ฯลฯ มีความยืดหยุ่นเพียงพอ (เนื่องจากชุดคำสั่งระดับต่ำ) ที่มีพอร์ตสำหรับการดีบัก ARM, การเขียนโปรแกรม FPGA หรือการสแกนโซ่ JTAG ทั่วไป .

สายเชิงพาณิชย์มีความเฉพาะเจาะจงมากขึ้นกับแพลตฟอร์มและมักจะมีตรรกะภายในสายเคเบิล สิ่งนี้ทำให้โปรแกรมพีซีสามารถพูดคุยกับอุปกรณ์ในลักษณะที่เป็นนามธรรมซึ่งสามารถเร็วขึ้น

ตัวอย่างเช่นดูที่โปรโตคอล JLINK USB มันมีคำสั่งเช่น EMU_CMD_WRITE_MEM_ARM79 สาย FTDI ยังสามารถรันคำสั่งนี้ได้ แต่มันถูกแปลบนฝั่ง PC เป็นคำสั่ง JTAG ระดับต่ำที่สาย FTDI เข้าใจ นอกจากนี้ยังหมายถึงคำสั่งระดับสูง (เขียนหน่วยความจำบางส่วน) แบ่งออกเป็นคำสั่งย่อยอื่น ๆ อีกมากมายซึ่ง JLINK สามารถทำบนสายเคเบิลที่ตนเอง ซึ่งอาจส่งผลให้เวลาในการตอบสนองดีขึ้น (โดยคำนึงถึงข้อ จำกัด ของ USB) และ / หรือความเร็วที่สูงขึ้น

นอกจากนี้ยังขึ้นอยู่กับผู้ขายเชิงพาณิชย์ของ IDE ที่รองรับสายเคเบิลและมีแนวโน้มที่จะรองรับสายการค้า ในทางกลับกันก็มีแนวโน้มที่ IDE ของฟรีจะรองรับสายดีบั๊ก FTDI ราคาถูก

ซอฟต์แวร์เชิงพาณิชย์บางตัวยังมีการสนับสนุนจุดพักโค้ดซอฟต์แวร์ซึ่งคุณสามารถตั้งค่าเบรกพอยต์โค้ดได้มากกว่าฮาร์ดแวร์ที่อนุญาต

การใช้ฟังก์ชั่นการติดตามของไมโครคอนโทรลเลอร์บางตัวต้องการฮาร์ดแวร์ที่รวดเร็วมากในการจับบัสบัสแบบ 4 บิต ฮาร์ดแวร์ที่มีคุณสมบัตินี้มักจะมี FPGA ให้ทำเช่นนั้น


จะพูดอะไรแบนด์วิดธ์เหล่านี้สามารถจัดการได้ หนึ่งสำหรับ Xilinx ระดับสูงที่ OP สอบถามเกี่ยวกับ (iC6000) สามารถทำการติดตาม 6.25 Gbps ด้วยโปรโตคอล Aurora ซึ่ง (1) Flyswatters ไม่รองรับและแม้ว่ามันจะเป็นสิ่งที่แบนด์วิดธ์เหล่านี้จะจัดการได้อย่างไร และหน่วยความจำภายในมี: 8GB สำหรับการติดตามบน iC6000
Fizz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.