Das eBook Angewandte Mikroelektronik wurde von Hans Lohninger zur Unterstützung verschiedener Lehrveranstaltungen geschrieben. Weitere Informationen finden sie hier.


Ablauf einer Programmentwicklung

Im Folgenden soll der typische Programmierzyklus während einer Programmentwicklung beschrieben werden. Jedes Programm muss zuerst mit Hilfe eines Editors geschrieben werden, dann wird es übersetzt und gebunden und am Schluss erfolgt der Test. Ist der Test nicht zufrieden stellend verlaufen, so benützt man wieder den Editor, verbessert das Programm, und der oben beschriebene Ablauf beginnt von vorne. Dieser Zyklus wird im Laufe einer Programmentwicklung meist mehrere Male durchlaufen, bis das endgültige Produkt fertig ist.

Editor

Viele (Hobby-)Programmierer machen den Fehler, einen Editor zu benützen, der zwar zum Schreiben von Briefen sehr gut brauchbar ist, der aber für die Programmentwicklung gänzlich unbrauchbar ist. Man sollte immer bedenken, dass bei der Entwicklung von mikrocomputergesteuerten Geräten die meiste Zeit mit dem Editor verbracht wird und nicht etwa mit dem Lötkolben. Gut geeignet für die Programmentwicklung sind sicherlich Editoren, die für diesen Zweck geschaffen worden sind.

Assembler

Nachdem der Source-Code (hoffentlich mit vielen Kommentaren) eingetippt worden ist, wird zuerst einmal der Assembler verwendet, um den Source-Code in ein so genanntes 'Object-File' zu übersetzen. Bei dieser Übersetzung wird Zeile für Zeile des Source-Codes in Maschinensprache übersetzt, wobei jedoch bestimmte Labels und Referenzen noch nicht in absolute Zahlen übersetzt werden, da unter Umständen das Programm noch mit anderen Programmteilen verbunden werden muss. Dieses 'Binden' übernimmt der Linker.

Linker

Der Linker verbindet nun alle Teilprogramme, die im Object-Code vorliegen müssen, zu einem lauffähigen Gesamtprogramm. Beim Link-Vorgang werden alle Referenzen, die der Assembler noch nicht auflösen konnte, aufgelöst. Gelingt dies nicht, so kann das Programm nicht gebunden und damit auch nicht lauffähig gemacht werden. Der Linker wird in diesem Fall eine Fehlermeldung mit den unaufgelösten Referenzen ausgeben.

Testphase

Das mit dem Linker erzeugte lauffähige Programm wird nun in das Zielsystem transferiert (download oder EPROM schießen) und einem Test unterzogen. Zum Test kann im einfachsten Fall das Programm einfach ausprobiert werden. Funktioniert es einwandfrei, so ist dies als ausgesprochener Glücksfall zu werten. Meist funktioniert das Programm jedoch gar nicht (stürzt ab) oder nicht zufrieden stellend.

Am schlechtesten ist der Fall, wenn das Programm gänzlich versagt. Denn dann kann man aus den (Fehl)reaktionen des Programms nicht auf den (die) Fehler schließen. In diesem Fall benötigt man entsprechende Hilfsgeräte und -programme, wie z.B. ein Oszilloskop, einen Logikanalysator, einen Debugger oder einen Simulator. Für eine effiziente Entwicklungsarbeit wird man sicherlich einen Logikanalysator benötigen, der aber aufgrund seines Preises sicherlich nur für den professionellen Einsatz geeignet ist.

Für die Fehlersuche in kleineren Programmen genügt auch ein Debugger oder besser ein Simulator, wobei man sich einfache Simulatoren auch selbst (in einer Hochsprache) schreiben kann. Der Aufwand dafür ist gar nicht so groß, wie man vermuten würde.


Last Update: 2008-05-31