26.02.2014 Aufrufe

Linux-Magazin Clean Linux (Vorschau)

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Know-how<br />

www.linux-magazin.de Embedded Debugging 09/2013<br />

88<br />

Abbildung 3: Der JTAG-Debug-Server baut eine Brücke zwischen der JTAG-Schnittstelle und dem Debugger<br />

auf dem Entwicklungssystem. Anschließend folgt der Entwickler dem bekannten Remote-Debugging-Schema.<br />

JTAG kann der Entwickler die Software<br />

ab der ersten ausgeführten Instruktion<br />

beobachten, benötigt aber keine zusätzliche<br />

Hardware (Abbildung 4).<br />

Genauer gesagt benötigt er theoretisch<br />

nicht einmal Zugriff auf ein physisches<br />

Exemplar des Zielsystems. Da die Emulation<br />

jedoch nicht hundertprozentig so<br />

funktioniert wie die echte Hardware, lässt<br />

sich eine spätere Ausführung auf einem<br />

realen Gerät meist nicht umgehen. Dies<br />

ist insbesondere dann der Fall, wenn man<br />

das Zeitverhalten des Zielsystems untersuchen<br />

möchte.<br />

Eines für alle<br />

Die meisten ARM-basierten SoC-Systeme<br />

unterscheiden sich signifikant im Aufbau,<br />

da ARM keine festen Vorgaben in Sachen<br />

I/O-Geräte oder Speicherlayout macht.<br />

Die Geräte des System-on-Chip lassen<br />

sich etwa über verschiedene Speicheradressen<br />

ansprechen, RAM, ROM und<br />

Flashspeicher befinden sich an unterschiedlichen<br />

Adressen. Bei der Portierung<br />

liegen zwar meist Treiber für die Geräte<br />

vor, da sie häufig bereits von anderen<br />

SoCs bekannt sind, dennoch muss der<br />

Entwickler die Systemsoftware an die andere<br />

Speicherstruktur anpassen.<br />

Für ARM-Systeme weist Qemu beim Entwickeln<br />

von Systemsoftware noch weitere<br />

Vorteile auf, die das Portieren von <strong>Linux</strong><br />

auf neue ARM-Plattformen erleichtern.<br />

So lassen sich in Qemu mit geringem<br />

Programmieraufwand beliebige Speicherlayouts<br />

emulieren, sodass sich der<br />

Programmierer von einer bestehenden<br />

lauffähigen Plattform Schritt für Schritt<br />

zur neuen Plattform bewegen kann. Die<br />

Remote-Debugging-Technik hilft ihm<br />

dabei, die Veränderungen komfortabel<br />

zu verfolgen, was Portierungen massiv<br />

beschleunigt.<br />

Die Außenwelt<br />

Abseits der Suche nach logischen Fehlern<br />

im Programmablauf verstecken sich<br />

im Embedded-Bereich auch Fehler in der<br />

Ansteuerung externer Geräte, die häufig<br />

an Standardschnittstellen wie RS232, I 2 C<br />

oder SPI hängen. Um diese Signale zu<br />

untersuchen, lassen sich so genannte Logic<br />

Analyzer nutzen, welche die Signale<br />

aufzeichnen und die übertragenen Daten<br />

am Entwicklungsrechner anzeigen. Der<br />

Funktionsumfang und die Genauigkeit<br />

der Analyzer ist sehr unterschiedlich und<br />

hängt vom Preis ab. Günstige Geräte wie<br />

etwa den Bus Pirate [3] gibt es bereits für<br />

rund 25 Euro.<br />

Debuggen wie die Profis<br />

tungen erweitern, die das Überwachen<br />

und Beobachten vereinfachen.<br />

Fazit<br />

Obwohl es also auf den ersten Blick komplex<br />

erscheint, bietet das Debugging von<br />

eingebetteten Systemen insgesamt eine<br />

Vielzahl von Lösungsansätzen, zwischen<br />

denen der Entwickler, abhängig von Bedarf<br />

und Zielplattform, auswählt.<br />

Der im Gegensatz zu Standardsystemen<br />

erhöhte Aufwand, den die Trennung von<br />

Entwicklungs- und Zielsystem sowie die<br />

stark eingeschränkten Ressourcen eingebetteter<br />

Systeme verursachen, verbergen<br />

die hier vorgestellten Ansätze meist vor<br />

dem Entwickler. Der Arbeitsablauf unterscheidet<br />

sich bei einer entsprechend<br />

eingerichteten Entwicklungsumgebung<br />

kaum vom Üblichen. (kki) n<br />

Infos<br />

[1] GDB: [http://www.gnu.org/software/gdb/]<br />

[2] Security für ARM: [http://infocenter.arm.<br />

com/help/index.jsp?topic=/com.arm.doc.<br />

prd29-genc-009492c/index.html]<br />

[3] Wikipedia über den Bus-Piraten:<br />

[http://en.wikipedia.org/wiki/Bus_Pirate]<br />

Die Autoren<br />

Anselm Busse ist wissenschaftlicher Mitarbeiter<br />

und Doktorand am Fachgebiet Kommunikationsund<br />

Betriebssysteme an der Technischen Universität<br />

Berlin. Jan Richling ist dort Gastprofessor<br />

für Betriebssysteme und eingebettete Systeme.<br />

Ihr Forschungsschwerpunkt liegt unter anderem<br />

in der Steigerung der Energieeffizienz von Many-<br />

Core-Systemen.<br />

Qemu<br />

Ausführung<br />

Im Profibereich, besonders beim Systemon-Chip-Design,<br />

stehen dem Entwickler<br />

noch weitere Werkzeuge zur Seite. So<br />

zeichnen digitale Speicher-Oszilloskope<br />

den<br />

Zugriff auf externen<br />

Speicher sowie andere<br />

Signale mit einer sehr<br />

hohen Genauigkeit<br />

auf. Da die Entwickler<br />

zudem Zugriff auf exakte<br />

Beschreibungen<br />

ARMder<br />

Chips haben, lässt<br />

Binary<br />

*.c<br />

sich das Ausführen<br />

von Programmen vollständig<br />

im Rechner<br />

Cross-GDB<br />

simulieren. Daneben<br />

kann ein Entwickler<br />

den Chip im Prototyp-<br />

Stadium um Steuerlei-<br />

GDB-<br />

Interface<br />

ARM-<br />

Binary<br />

*.c<br />

Abbildung 4: Mit Qemu, das komplette Systeme emuliert, lassen sich auch<br />

ARM-Systeme ähnlich wie mit JTAG debuggen.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!