Erschienen im DESIGN & VERIFICATION NR.6 2001 S. 46-48
in der 'toolbox' unter dieser Meldung können Sie, als registrierter USER, zu dem Fachbeitrag mit dem
- 'details-Button' - eine Vollversion mit allen Bildern als pdf-Datei downloaden
- 'Email-Button' - per E-Mail direkten Kontakt zum Ansprechpartner aufnehmen
- 'discuss it-Button' - den Beitrag mit Anderen in einem Forum diskutieren
Sollten Sie noch kein registrierter User sein, können Sie das sofort und kostenfrei in der linken Spalte nachholen!
Nicolas Stenko ist als Ingenieur für Wind River Systems tätig und verantwortet das technische Marketing des Geschäftsbereichs DTG in Europa.
Der Siegeszug von System-on-Chip-Produkten ist nicht mehr zu stoppen. Traditionelle Softwareentwurfswerkzeuge stoßen an technische Grenzen und werden durch Techniken wie On-Chip-Emulation ergänzt oder gar ersetzt. Boten anfangs nur die Halbleiterhersteller entsprechende Tools an, die diese Funktionalität nutzen konnten, kommen jetzt verstärkt herstellerunabhängige Werkzeuge auf den Markt, die dem Entwickler die Kontrolle über sein Design zurückgeben.
Die bekanntesten Anbieter von Werkzeugen für Embedded-Software arbeiten derzeit gemeinsam an neuen, integrierten Lösungen für die Entwicklung und den Test von leistungsstarken Embedded-Systemen. Extrem schnelle und tief integrierte Prozessoren haben dieses Betätigungsfeld grundlegend verändert. Durch die System-on-Chip-Technologie (SoC) verliert der traditionelle In-Circuit-Emulator (ICE) weitgehend an Bedeutung und die Entwickler werden gleichzeitig zunehmend davon abhängig, dass Prozessor- und Chiphersteller interne Zugriffsmöglichkeiten in ihre Produkte integrieren, über die neu entwickelte Systeme beobachtet und getestet werden können. Eine Technik, die dies ermöglicht, ist die On-Chip- Emulation. Allerdings erfolgt dieser Zugriff zumeist über herstellerspezifische Produkte oder mit Hilfe von Software, die vor allem auf ihre Funktionalität auf dem Chip ausgerichtet ist – Nachteile, die Entwickler von Embedded- Systemen längst glaubten überwunden zu haben. Der neue Trend erscheint daher viel versprechend und die folgenden Ausführungen werden zeigen, dass Lösungen unabhängiger Anbieter eine Renaissance erleben und die Ingenieure dank dieser herstellerunabhängigen, nahtlos integrierten Software- und Hardware- Werkzeuge wieder mehr Kontrolle gewinnen.
Proprietäre Lösungen
Früher war es üblich, dass Hersteller von Mikroprozessoren eigene Entwicklungs- und Testwerkzeuge für ihre Produkte anboten. Tools wie die ‚Blue Box‘ von Intel entwickelten sich in der Folgezeit zur Industriestandardausrüstung. Diese herstellereigenen Lösungen waren zuverlässig und leistungsstark, aber auch unflexibel und teuer. Oft verlief die Entwicklung von Embedded-Systemen in einem frustrierenden ‚Ein-Schritt-vor-zwei-Schritte-zurück‘-Rhythmus, da ein Wechsel des Prozessors einen Wechsel der Werkzeuge und damit ein völlig neues Einlernen nach sich zog.
Lösungen unabhängiger Anbieter
Die Situation änderte sich grundlegend mit dem Aufkommen unabhängiger Softwareanbieter. Ähnliches lässt sich derzeit im vergleichsweise jungen Feld der integrierten Werkzeuge beobachten. Die herkömmlichen Lösungen verkürzten zwar ganz erheblich die Vorlaufzeiten neuer Software-Implementationen, doch je komplexer, kompakter und leistungsfähiger die Echtzeit-Systeme und Prozessoren wurden, desto zeitaufwändiger wurde die nötige Testphase, um Systemfehler zu beseitigen. Prozessordesigner und Chiphersteller entwickelten dafür Lösungen, die das Problem allerdings nur zum Teil behoben, da sie zumeist nur auf die Produkte des jeweiligen Anbieters zugeschnitten waren. Die Automobilindustrie erkannte das Problem und organisierte vor rund drei Jahren das ‚Nexus 5001 Forum‘, mit dem Ziel, einen offenen Industriestandard durchzusetzen, eine Universalschnittstelle für die Entwicklungs- und Testbedürfnisse moderner Embedded-Prozessoren. Das Ergebnis war der IEEE-ISO-5001-Standard von 1999. Obwohl ihn die Industrie generell unterstützt, wurden bisher nur begrenzt Fortschritte gemacht. Das veranlasste eine Gruppe führender Werkzeugentwickler, ihre Produkte auf eigene Faust zu integrieren. Katalysator war dabei überraschenderweise der Logikanalysator, der über seine Integration mit Softwaretools und Emulation auf dem Chip attraktive Möglichkeiten verspricht.
Bedeutung integrierter Umgebungen
Softwaresimulationen sind zu leistungsstarken Testinstrumenten geworden, die routinemäßig Systemfehler aufdecken und realistische Vorhersagen über die Systemleistung zulassen. Doch Pipeline-Architektur und Cache-Speicher moderner Mikroprozessoren bereiten Probleme und sorgen für Unsicherheiten hinsichtlich Ausführungs- und Reaktionszeiten. Ein Testinstrument für Echtzeitsysteme muss jedoch Befehlsausführzeiten verifizieren können und zudem in der Lage sein, leistungsintensive Vorgänge wie indirekte Verzweigungsund Kontext-Switches zu beobachten. Zwar erlaubt die Emulation auf dem Chip per JTAG-Schnittstelle eine Echtzeitkontrolle eines Mikroprozessors, doch Beobachtung und Datenerfassung werden durch die serienmäßige JTAGVerbindung mit ihrer limitierten Bandweite gehemmt. Mikroprozessorhersteller bieten deshalb oft Hilfsportierungen zur Echtzeit-Datenerfassung an. Genau das begründete die neue Rolle des Logikanalysators. Traditionell wurde der Logikanalysator nur zum Testen von Hardware eingesetzt und die Idee, Hilfsprogramme für Softwareentwicklung und Fehlersuche auf seinem industrieweit standardisierten Betriebssystem anzusiedeln, ist relativ neu. Die nahtlose Entwicklung von Tests, Hard- und Software, speziell in der Integrationsphase von Hard- und Software, ist schon lange ein Wusch der Ingenieure. Denn verlaufen Entwicklung und Fehlersuche nicht parallel, kann das gravierende Probleme verursachen und die Struktur des Lebenszyklus gefährden. Mit am problematischsten ist in modernen eingebetteten Hochgeschwindigkeitssystemen der metastabile Zustand. In diesem kann schnelle Signalausbreitung bewirken, dass ein Signal zwischen zwei Ebenen hängen bleibt und einen Runt- Impuls auslöst, der sich schließlich zu einem unbekannten Zeitpunkt auf einer unbekannten Ebene auflöst. Probleme wie diese begründen sich im Zusammenspiel von analogem, digitalem und Software-Bereich und müssen entsprechend ganzheitlich angegangen werden. Bisher sahen sich die Systemdesigner oft vor das schwierige Problem gestellt, dass sowohl die Instrumentenhersteller als auch die Produzenten der Softwarelösungen eigene, grundverschiedene Werkzeuge anboten, die nur mit Mühen gemeinsam eingesetzt werden können. Eine integrierte Umgebung war gefragt und die großen Hersteller von Embedded-Systemwerkzeugen reagierten.
Terminologie-Spielereien
In die Terminologie der Systemtester haben sich viele verwirrende oder sogar inkorrekte Bezeichnungen eingeschlichen. Der On-Chip-Emulator etwa ist im Prinzip nichts anderes als ein chipinterner Monitor und die Instrumente, die an diesem angeschlossen sind, haben wenig mit dem ursprünglichen ICE gemeinsam. Die wichtigsten Aufgaben der neuen Instrumente sind die Kontrolle des On-Chip-Emulators und die Erfassung der Trace-Daten, wofür sich der Logikanalysator anbietet. Die besten Logikanalysatoren verfügen über leistungsfähige Zwischenspeicher, die Daten in Pikosekunden abrufen und auch konkrete, komplexe Ereignisse mit Hilfe umfassender Trigger-Funktionen erfassen. Was den Logikanalysator ideal macht, ist seine Fähigkeit, gemeinsam mit den fortschrittlichsten Softwarelösungen zu arbeiten. Hier ist klar zwischen einem Sammelsurium unterschiedlicher Testwerkzeuge, die über eine Schnittstelle koordiniert werden, und wahrhaft nahtlos integrierten Lösungen zu differenzieren. Letztere entstehen aus herstellerübergreifenden gemeinsamen Entwicklungsanstrengungen, wie sie derzeit zwischen dem größten Logikanalysatorhersteller Tektronix und Wind River stattfinden. Ziel der Zusammenarbeit ist die gemeinsame Entwicklung integrierter Entwicklungsund Testumgebungen, etwa für den PowerPCProzessor von Motorola. Auslösendes Moment war die von den Partnern geteilte Überzeugung, dass Logikanalysatoren den erforderlichen Einblick in Embedded-Systeme mit Echtzeit-Charakter bieten können. Die Herausforderung bei der Entwicklung einer integrierten Entwicklungsumgebung bestand dabei darin, die hardwareorientierte Darstellung der vom Analysator erfassten Daten in ein Format zu bringen, mit dem Softwareingenieure vertraut sind. Die Integration von Tektronix’ leistungsstarken Logikanalysatoren und Wind Rivers ‚Vision- ICE/VisionProbe‘ erlaubt es Entwicklern nun, Abläufe im System mit ihrem Quellcode zu korrelieren und auf diese Weise Probleme schneller zu erkennen. Das verkürzt die Vorlaufzeit zur Marktreife erheblich.
Fazit
Mit einem komplett in den Logikanalysator integrierten Toolset können Entwickler Systemabläufe und Ereignisse in Echtzeit beobachten, mit Hilfe von Breakpoints die Ausführung auf dem Target anhalten oder stoppen sowie spezielle Ereignisse untersuchen. Die gesammelten Daten werden im Trace-Fenster entweder in Maschinensprache, abstraktem Quellcode oder einer Kombination aus beidem dargestellt. Hochentwickelte Funktionen ermöglichen die Suche nach spezifischen Codefunktionen, Variablen und speziellen Codeadressen oder Datenwerten. Möglich wird dies durch eine nahtlose Integration des Tektronix Logikanalysators mit seinen fortschrittlichen Trigger- Funktionalitäten und seiner Fähigkeit, 500 000 Signale pro Sekunde zu erfassen, und Wind Rivers integralen ‚La Trace‘-Funktionalitäten, über die die Daten übersichtlich dargestellt werden. Der modular angelegte Logikanalysator kann zudem mit einem Digitaloszilloskop und Mustergenerator ausgerüstet werden. Entwicklung und Test von Embedded-Systemen werden durch den Zusammenschluss des Windows-kompatiblen Tektronix-Logikanalysators mit Wind Rivers Tornado-Entwicklungsumgebung komplett integriert. Die dort angesiedelte VisionICE/VisionProbe-Software ist integriert mit Echtzeit-Systembeobachtung und On-Chip-Emulation. Die Produktreihe befindet sich derzeit in der Betaphase für den PowerPC-Prozessor.
Abb. 1: Der Zugriff auf das Target-System erfolgt in einer Entwicklungsumgebung, die aus einer Kombination eines On-Chip-Emulators und eines Logikanalysators besteht, über ein Software-Debugger-Pod (im Bild) und den Tastköpfen des Logikanalysators.
Abb. 2: Die Integration eines Logikanalysators mit Softwareentwicklungswerkzeugen bietet eine durchgängige Entwicklungsumgebung von Hard- und Software.
more @ click DV61451
|
| |
|
 |
|