AVR Studio 4 Tutorial.pdf - lehrer
AVR Studio 4 Tutorial.pdf - lehrer
AVR Studio 4 Tutorial.pdf - lehrer
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