Hallo Leute, worin bestehen überhaupt die grundsätzlichen unterschiede zwischen JTAG und Nexus. Gut Nexus ist schneller, aber was gibt es noch für Vor- bzw. Nachteile?
Patrick L. schrieb: > Hallo Leute, > > worin bestehen überhaupt die grundsätzlichen unterschiede zwischen JTAG > und Nexus. Gut Nexus ist schneller, aber was gibt es noch für Vor- bzw. > Nachteile? Pro: Nachts ist es dunkler. Con: Aber auch kälter.
Patrick L. schrieb: > worin bestehen überhaupt die grundsätzlichen unterschiede zwischen JTAG > und Nexus. Gut Nexus ist schneller, aber was gibt es noch für Vor- bzw. > Nachteile? Darf ich die Wikipedia zitieren: --- Physically, IEEE-ISTO 5001-2003 defines a standard set of connectors for connecting the debug tool to the target or system under test. Logically, data is transferred using a packet-based protocol. This protocol can be JTAG (IEEE 1149.1); or, for high-speed systems, an auxiliary port can be used that supports full duplex, higher bandwidth transfers. Key Nexus functionality involves either JTAG-style request/response interactions, or packets transferred through the debug port, and includes: --- Demnach ist nexus ein Protokoll das sich erst im Markt etablieren muss und sich als Schnittstelle JTAG bedienen kann. rgds
Hallo, JTAG ist eine serielle Schnittstelle um Daten in bzw. aus einem Chip zu bekommen. Wenn mehrere Chips auf einer Platine sitzen, werden sie oft hintereinander zu einer JTAG-Chain verbunden. Dann kann man z.B. bei der Produktion überprüfen ob alle Chips funktionieren (Boundary Scan). Nexus (für PowerPC, oder ETM z.B. bei ARM) ist eine parallele Schnittstelle für Mikrocontroller mit mehreren parallelen Datenleitungen (wieviele genau hängt vom jeweiligen uC ab, typisch sind 4,8,12 oder gar 16). ETM bedeutet "Embedded Trace Macrocell", was schon mal einen Hinweis auf den Sinn der Schnittstelle liefert: Bei JTAG muß man jedes Bit, das man ein- oder auslesen möchte, mühsam durch die Chain tickern. Nexus oder eben ETM ist dazu gedacht, schnell Daten aus dem uC auslesen zu können ohne den Core stark zu beeinflussen. Damit ist es z.B. möglich 'Traces' aufzunehmen, d.h. den Programmfluß 'mitzuschneiden' oder sich anzuschauen was im Speicher abgeht (indem man die Schreib-Lese Zugriffe mit aufzeichnet). Die Bandbreite von JTAG ist dafür viel zu gering als dass man das in Echtzeit hinbekommen würde. Kommt man bei JTAG mit einfachen (selbstgebauten) Adaptern/Programmen schon recht weit, hat man bei Nexus/ETM keine Chance mehr und muß auf die am Mark verfügbaren (teuren) Debugger/Traces zurückgreifen. Das hat auch seinen Grund. Die Verarbeitung der Datenflut erfordert viel Speicher und FPGAs um dem überhaupt beizukommen. Nimmt man beispielsweise einen Intsruction-Trace über 10s eines PowerPCs bei 200MHz CPU-Takt auf, braucht man schon mehrere GByte Speicher! Bekannte Hersteller von Trace-HW sind: Lauterbach, iSystems, GreenHills und diverse andere. Teilweise bekommt man auch beim Chiphersteller selbst entsprechendes Equipment oder zumindest eine Empfehlung.
Danke Nexus für die ausführliche Erläuterung! Kann man den grundsätzlich denn sagen, dass physikalisch die selbe Schnittstelle für Nexus als auch für JTAG benutzt werden (z.B. bei einem Renesas R1H)? Die Nexus wird ja vermutlich auch auf einer höheren Takfrequenz laufen oder wurde da einfach nur eine parallele Übertragung und/oder der Overhead des Protokoll (vgl. JTAG) verringert?
:
Bearbeitet durch User
>Kann man den grundsätzlich >denn sagen, dass physikalisch die selbe Schnittstelle für Nexus als auch >für JTAG benutzt werden. Nein. Sowohl die Signale als auch das Protokoll ist unterschiedlich. Ich kenne den R1H nicht. Aber im Datenblatt sollten sich da mehr Infos finden. JTAG und Nexus werden parallel genutzt. Über JTAG wird die Debug-Session aufgesetz und gesteuert (auch das Nexus-Interface). Nexus wird verwendet um die (Trace-)Daten aus dem Controller zu bekommen. JTAG Signale heißen z.B. TDI,TDO,TMS und TCK. Bei Nexus heißen die Leitungen MDO,MCKO,EVTI,EVTO,MSEO wobei das I/O am Ende angibt ob der Pin ein Ausgang = O (Chip->Debugger) oder ein Eingang = I (Debugger->Chip) ist. Schau mal hier: http://nexus5001.org/wp-content/uploads/2015/02/nexus-wp-200408.pdf oder hier: http://cache.freescale.com/files/32bit/doc/app_note/AN3968.pdf
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.