19.07.2013 Aufrufe

AVR Studio 4 Tutorial.pdf - lehrer

AVR Studio 4 Tutorial.pdf - lehrer

AVR Studio 4 Tutorial.pdf - lehrer

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

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

<strong>AVR</strong> <strong>Studio</strong> 4 <strong>Tutorial</strong><br />

Informationen<br />

Allgemeines<br />

<strong>AVR</strong> <strong>Studio</strong> 4 <strong>Tutorial</strong><br />

-> Zurück<br />

Diese Anleitung wurde von Kai Ludwig erweitert und ins Deutsche übersetzt. Sie basiert auf der englischsprachigen Version von Len<br />

Payne und Peter Sutton, die hier abgerufen werden kann.<br />

<strong>AVR</strong> <strong>Studio</strong> starten<br />

Das Programm <strong>AVR</strong> <strong>Studio</strong> wird gestartet, indem „Start->Programme->Atmel <strong>AVR</strong> Tools-><strong>AVR</strong> <strong>Studio</strong> 4“ aufgerufen wird. Wenn im<br />

Willkommensdialog die Option „Show this dialog on open“ aktiviert ist, wird der Dialog zum Erstellen eines neuen Projektes beim Start<br />

automatisch angezeigt:<br />

Sonst erscheint direkt das <strong>AVR</strong> <strong>Studio</strong> Hauptfenster:<br />

Neues Projekt erstellen<br />

Page 1 of 8<br />

Der Dialog zum Erstellen eines neuen Projektes kann entweder im Willkommensdialog mit dem Knopf „Create New Project“ oder im<br />

Menü „Project“ des <strong>AVR</strong> <strong>Studio</strong> Hauptfensters über die Option „New Project“ aufgerufen werden:<br />

file://C:\STK500\<strong>Tutorial</strong>\<strong>AVR</strong> <strong>Studio</strong> 4 <strong>Tutorial</strong>.htm<br />

24.07.2007


<strong>AVR</strong> <strong>Studio</strong> 4 <strong>Tutorial</strong><br />

In dieser Anleitung wird ein kleines Programm erstellt, das einen 8-Bit Wert regelmäßig erhöht und als Binärzähler auf Port B des<br />

AT90S2313 ausgibt.<br />

Im Dialog sollte zunächst der Projektname eingegeben werden. Im Beispiel nennen Sie das Projekt „led“. Als Nächstes muss noch das<br />

Projektverzeichnis angegeben werden. An dieser Stelle speichert <strong>AVR</strong> <strong>Studio</strong> alle zum Projekt gehörenden Dateien. Im Beispiel<br />

verwenden Sie das Unterverzeichnis „C:\avr2313_assembler“. Falls das Verzeichnis noch nicht existiert, fragt <strong>AVR</strong> <strong>Studio</strong>, ob es<br />

angelegt werden soll. Wenn der Dialog mit dem Knopf „Next>>“ bestätigt wird, erscheint ein weiterer Dialog:<br />

Damit <strong>AVR</strong> <strong>Studio</strong> später das Programm simulieren kann, muss hier „<strong>AVR</strong> Simulator“ als Debug Plattform ausgewählt und der<br />

verwendete Prozessortyp angegeben werden. Im Beispiel wählen Sie „AT90S2313“. Nachdem dieser Dialog mit dem Knopf „Finish“<br />

geschlossen wurde, legt <strong>AVR</strong> <strong>Studio</strong> das neue Projekt an und öffnet die Quelltextdatei im integrierten Editor. Der Bildschirm sieht nun<br />

folgendermaßen aus:<br />

Nun kann mit der Eingabe des Assemblerprogramms begonnen werden.<br />

file://C:\STK500\<strong>Tutorial</strong>\<strong>AVR</strong> <strong>Studio</strong> 4 <strong>Tutorial</strong>.htm<br />

Page 2 of 8<br />

24.07.2007


<strong>AVR</strong> <strong>Studio</strong> 4 <strong>Tutorial</strong><br />

Der Arbeitsbereich<br />

Die Datei „led.asm“ wird automatisch als Hauptdatei des Projekts markiert. Dies ist erkennbar an dem kleinen roten Pfeil auf dem<br />

Miniaturbild neben dem Dateinamen im Arbeitsbereich (Workpace). <strong>AVR</strong> <strong>Studio</strong> beginnt die Programmübersetzung immer bei der<br />

Hauptdatei, von der es im Ordner „Assembler“ immer nur eine geben kann.<br />

Wenn in einem Assemblerprojekt mehrere Dateien benötigt werden, so können neue oder bestehende Dateien dem Projekt<br />

hinzugefügt werden. Nach Rechtsklick mit der Maus auf den Ordner Assembler im Arbeitsbereich wird mit der Option „Create new File“<br />

eine neue Datei erstellt, deren Name danach angegeben werden muss. Durch die Option „Add existing File“ kann eine bestehende<br />

Datei hinzugefügt werden, <strong>AVR</strong> <strong>Studio</strong> fragt automatisch nach dem Ort der Datei.<br />

Eine neue Hauptdatei des Projektes wird festgelegt, indem auf ihren Dateinamen im Arbeitsbereich mit der rechten Maustaste geklickt<br />

wird und dann die Option „Set as Entry File“ gewählt wird. Die neue Hauptdatei erhält dann den kleinen roten Pfeil.<br />

Bearbeiten der Assemblerdatei<br />

Nachdem Sie nun ein neues Projekt mit einer leeren Datei erstellt haben, beginnen Sie mit der Eingabe des Assemblerprogramms.<br />

Sollte die Datei „led.asm“ nicht geöffnet sein, so kann diese im integrierten Editor geöffnet werden, indem im Arbeitsbereich mit<br />

Doppelklick auf den Dateinamen geklickt wird. Die Datei ist zunächst leer, der Programmtext muß manuell eingegeben werden. Bitte<br />

tippen Sie den folgenden Text ab oder fügen ihn durch Kopieren ein:<br />

;**********************************************************<br />

.include "2313def.inc" ; Definitionen für AT90S2313<br />

rjmp RESET ; Reset Handle<br />

;**********************************************************<br />

RESET:<br />

.def temp = r16 ; temp als Universalregister definieren<br />

ldi temp,low(RAMEND) ; Stackpointer initialisieren<br />

out SPL,temp<br />

ser temp ; temp = FF<br />

out DDRB,temp ; Datenrichtungsregister für Port B auf Ausgang schalten<br />

loop: ; Endlosschleife<br />

out PORTB,temp ; temp auf Port B ausgeben<br />

inc temp ; temp um 1 erhöhen<br />

rjmp loop<br />

Page 3 of 8<br />

Nach der Eingabe des Programms sollte es gespeichert werden. Dazu ist aus dem Menü „File“ die Option „Save“ zu verwenden. Das<br />

<strong>AVR</strong> <strong>Studio</strong> Hauptfenster sollte nun folgendermaßen aussehen:<br />

file://C:\STK500\<strong>Tutorial</strong>\<strong>AVR</strong> <strong>Studio</strong> 4 <strong>Tutorial</strong>.htm<br />

24.07.2007


<strong>AVR</strong> <strong>Studio</strong> 4 <strong>Tutorial</strong><br />

Programmdatei übersetzen<br />

Page 4 of 8<br />

Um das Programm zu übersetzen (assemblieren) muss aus dem Menü „Project“ die Option „Build“ aufgerufen werden. Kürzer geht dies<br />

durch die Taste „F7“.<br />

<strong>AVR</strong> <strong>Studio</strong> übersetzt nun den Quelltext des Programms in für den Mikrocontroller ausführbare Befehle. Das <strong>AVR</strong> <strong>Studio</strong> Hauptfenster<br />

sollte danach folgendermaßen aussehen:<br />

file://C:\STK500\<strong>Tutorial</strong>\<strong>AVR</strong> <strong>Studio</strong> 4 <strong>Tutorial</strong>.htm<br />

24.07.2007


<strong>AVR</strong> <strong>Studio</strong> 4 <strong>Tutorial</strong><br />

Das fertige Programm belegt 16 Bytes Speicher (8 words). Bei der Programmübersetzung kam es zu keinen Fehlern. Das fertige<br />

Programm ist im Unterverzeichnis „C:\avr2313_assembler“ unter dem Dateinamen „led.hex“ abgelegt. Diese Datei kann später z.B. mit<br />

PonyProg zum Mikrocontroller übertragen werden.<br />

Zuvor sollten Sie jedoch das Programm in <strong>AVR</strong> <strong>Studio</strong> simulieren und sein Verhalten untersuchen.<br />

Simulation<br />

Bis hierher haben Sie alle Dateien erstellt, die zur Simulation des Programms benötigt werden. Um die Simulation zu starten, wählen<br />

Sie aus dem Menü „Debug“ die Option „Start Debugging“:<br />

Befehlszeiger<br />

Page 5 of 8<br />

Sie sehen nun im Editor einen gelben Pfeil auf der linken Seite des Programmtextes. Dieser Pfeil ist der Befehlszeiger (Instruction<br />

Pointer) und zeigt die aktuelle Position der Programmausführung. Er zeigt auf den nächsten auszuführenden Befehl. Im Arbeitsbereich<br />

(Workspace) ist statt des Reiters „Project“ nun der Reiter „I/O“ aktiv. Hier werden die internen Strukturen des simulierten Prozessors<br />

angezeigt:<br />

Öffnen Sie nun den Bereich „I/O AT90S2313“, um im Detail ansehen zu können, was mit Port B während der Programmausführung<br />

geschieht. Dazu muss mit der linken Maustaste auf das kleine „+“ neben „I/O AT90S2313“ geklickt werden. Dadurch werden alle I/O-<br />

Einheiten des simulierten Prozessors angezeigt. Um nun die Details für Port B anzusehen, muss mit der linken Maustaste auf das<br />

kleine „+“ neben „PORTB“ geklickt werden:<br />

file://C:\STK500\<strong>Tutorial</strong>\<strong>AVR</strong> <strong>Studio</strong> 4 <strong>Tutorial</strong>.htm<br />

24.07.2007


<strong>AVR</strong> <strong>Studio</strong> 4 <strong>Tutorial</strong><br />

Es werden alle Register, die mit Port B zusammenhängen, angezeigt. Dazu gehören das „Port B Data Register“ (PORTB), das<br />

„Datenrichtungsregister“ (DDRB) und das „Port B Eingangsregister“ (PINB). Jedes Bit in den Registern wird durch eine Checkbox<br />

dargestellt. Eine logische ‚null’ (0) wird durch eine leere Checkbox angezeigt, eine logische ‚eins’ (1) wird durch eine ausgefüllte<br />

Checkbox angezeigt. Diese Checkboxen werden während der Programmausführung ständig aktualisiert und zeigen den aktuellen<br />

Zustand der einzelne Bits. Sie können die einzelnen Bits auch durch Anklicken der Checkboxen mit der linken Maustaste setzen oder<br />

löschen. Links neben den Checkboxen sehen Sie den aktuellen Wert der Register in hexadezimaler Notation.<br />

Programmausführung im Einzelschrittverfahren<br />

Es gibt zwei Kommandos, um das Programm im Einzelschrittverfahren auszuführen. Dies sind „Step Over“ (F10) und „Step Into“ (F11).<br />

Der Unterschied zwischen diesen Kommandos ist, dass „Step Over“ nicht in Unterroutinen hineinläuft. Da das Beispielprogramm keine<br />

Unterroutinen hat, macht es im Beispiel keinen Unterschied, ob „Step Over“ oder „Step Into“ benutzt werden.<br />

Führen Sie nun durch wiederholtes Betätigen von „Step Into“ (F11) das Programm in Einzelschritten bis zur letzten Programmzeile<br />

(rjmp loop) aus. Die Register wechseln ihre Farbe von schwarz auf rot, sobald sie ihren Wert verändern. Dadurch lässt sich einfacher<br />

beobachten, welche Register während der Programmausführung verändert werden.<br />

Durch weiteres Betätigen von „Step Into“ (F11) kann die Endlosschleife mehrfach durchlaufen werden. Dabei können Sie beobachten,<br />

wie der Wert von Port B erhöht wird.<br />

Programmunterbrechungspunkte<br />

Page 6 of 8<br />

Durch Programmunterbrechungspunkte (Breakpoints) kann der Ablauf eines Programm angehalten werden. Wenn ein<br />

Programmunterbrechungspunkt im Programmtext hinzugefügt wird, kann das Programm mit voller Geschwindigkeit ausgeführt werden<br />

und stoppt dann in der Programmzeile mit dem Programmunterbrechungspunkt.<br />

Im Moment müssen Sie „Step Into“ (F11) dreimal ausführen, um die Endlosschleife einmal komplett zu durchlaufen. Indem Sie in der<br />

Zeile mit dem Befehl „rjmp loop“ einen Programmunterbrechungspunkt hinzufügen, können Sie den Simulationsprozess beschleunigen.<br />

Bringen Sie den Cursor auf die Zeile mit dem Befehl „rjmp loop“ und wählen Sie dann aus dem Menü „Debug“ die Option „Toggle<br />

Breakpoint“. Der Programmunterbrechungspunkt kann durch erneutes Betätigen der Taste F9 wieder entfernt werden.<br />

Am linken Rand des Editorfensters erscheint ein roter Kreis und zeigt den soeben erstellten Programmunterbrechungspunkt an. Indem<br />

aus dem Menü „Debug“ die Option „Run“ gewählt wird, läuft das Programm los und hält an der Stelle mit dem<br />

Programmunterbrechungspunkt wieder an. Kürzer geht dies durch die Taste „F5“.<br />

file://C:\STK500\<strong>Tutorial</strong>\<strong>AVR</strong> <strong>Studio</strong> 4 <strong>Tutorial</strong>.htm<br />

24.07.2007


<strong>AVR</strong> <strong>Studio</strong> 4 <strong>Tutorial</strong><br />

Verändern des Programmtextes<br />

Um z.B. das Programm herunter- statt heraufzählen zu lassen, muss der Programmtext editiert werden. Bringen Sie den Cursor in das<br />

Editorfenster auf die Zeile mit dem Befehl „inc“ (increment) und ändern diesen in „dec“ (decrement). Wenn Sie nun die<br />

Programmausführung wieder mit der Taste F5 starten, erscheint folgende Dialogbox:<br />

<strong>AVR</strong> <strong>Studio</strong> bemerkt, das Sie den Programmtext während der Simulation geändert haben und fordert Sie auf, die Neuübersetzung der<br />

Programms zu bestätigen. Drücken Sie bitte den Knopf „Yes“.<br />

Das Projekt wird nun erneut übersetzt und der Befehlszeiger wird wieder auf die erste Zeile gesetzt. Der eingestellte<br />

Programmüberwachungspunkt bleibt bestehen.<br />

Überwachen von Variablen<br />

Page 7 of 8<br />

Um während der Programmausführung den Inhalt von Variablen sehen zu können, kann im Menü „View“ mit der Option „Watch“ ein<br />

Fenster zur Überwachung der Variablen (Watch) geöffnet werden.<br />

Variablen, die mit der Angabe „.def“ definiert wurden, können im Fenster zur Überwachung der Variablen angezeigt werden. Im Beispiel<br />

ist „temp“ die einzige definierte Variable. Nachdem mit der rechten Maustaste in das Fenster zur Überwachung der Variablen geklickt<br />

und dann „Add Item“ ausgewählt wurde, kann dort „temp“ eingegeben werden. Nach Betätigen der Eingabetaste erscheint die Variable<br />

file://C:\STK500\<strong>Tutorial</strong>\<strong>AVR</strong> <strong>Studio</strong> 4 <strong>Tutorial</strong>.htm<br />

24.07.2007


<strong>AVR</strong> <strong>Studio</strong> 4 <strong>Tutorial</strong><br />

„temp“ im Fenster zur Überwachung der Variablen. Wenn Sie nun das Programm weiter ausführen, wird der Wert der Variablen ständig<br />

aktualisiert.<br />

Anzeige der Prozessorsdetails<br />

Um die internen Strukturen des simulierten Prozessors zu beobachten, kann im Arbeitsbereich (Workspace) durch Klicken mit der<br />

linken Maustaste auf das klein „+“ neben „Processor“ dessen Detailansicht geöffnet werden.<br />

Hier werden prozessorspezifische Informationen wie Programmzähler, aufgeführte Taktzyklen und verstrichene Zeit angezeigt. Diese<br />

Daten sind nützlich, wenn man die genaue Länge einer Schleife oder die exakte Zeit einer Unterroutine bestimmen will. In diesem<br />

Beispiel werden diese Informationen nicht weiter benötigt, sie stellen aber eine nützliche Informationsquelle während der Simulation<br />

von Projekten dar.<br />

Speichern des Projekts<br />

Bevor Sie <strong>AVR</strong> <strong>Studio</strong> verlassen, speichern Sie das Projekt. <strong>AVR</strong> <strong>Studio</strong> merkt sich die Positionen der Fenster und stellt diese wieder<br />

her, wenn das Projekt erneut geöffnet wird. Um das Projekt zu speichern, wird aus dem Menü „Project“ die Option „Save Project“<br />

gewählt.<br />

Copyright 2003-2007 Talentraspel Elektronikversand K. Ludwig / Zuletzt aktualisiert: 08:51 22/11 2005<br />

file://C:\STK500\<strong>Tutorial</strong>\<strong>AVR</strong> <strong>Studio</strong> 4 <strong>Tutorial</strong>.htm<br />

Page 8 of 8<br />

24.07.2007

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!