Pfad:
Home =>
avr DE =>
How-To => Assemblieren Windows
(This page in English:
)
Assemblieren von Assembler-Quellcode unter Windows
Im Folgenden wird angenommen, es gäbe einen Assembler-Quellcode namens
"mein_asm_code.asm" in einem Ordner. Wer den Quellcode selbst
erzeugen will, der
- klicke mit der rechten Maustaste in den leeren Ordner und wähle "Neu"
und "Textdatei", benenne die Datei entsprechend mit
"mein_asm_code.asm", bestätige den nervigen Kommentar,
- doppelklicke entweder auf die Datei (worauf sich ein Notepad-Fenster
öffnen sollte) oder rechtsklicke auf die Datei und "Öffnen
mit" und dort dann "Editor",
- tippe im Editor diese Zeilen ein, und
- speichere die Datei ab.
Noch eine Warnung: Assembler-Quellcode-Dateien niemals mit Office-Schreibprogrammen
öffnen und speichern. Das macht sie kaputt und für den Assembler
unlesbar.
An den Seitenanfang, zur Leitseite
Schritt 1: Den gavrasm-Assembler für Windows holen
Zum Assemblieren braucht man das Assemblerprogramm. Ich empfehle meinen
eigenen, gavrasm. Er hat den Vorteil, dass er die Definitionsdateien von
ATMEL für alle AVR-Typen verinnerlicht hat, wir brauchen uns daher
nicht mit diesen herumschlagen (und das 850 MB große Studio
herunterzuladen und zu installieren).
Um gavrasm herunterzuladen, navigiere man mit seinem Lieblingsbrowser
an die nebenstehende Adresse und lade sich mit einem Rechtsklick auf
den Win64-Link sowie "Ziel speichern unter" die Datei herunter,
bevorzugt dahin, wo auch schon die Quellcode-Datei herumliegt.
gavrasm gibt es fertig kompiliert nur für die 64-Bit-Versionen
von Windows. Wer 32-Bits oder noch ein anderes Betriebssystem hat,
braucht den Pascal-Quellcode von gavrasm (von weiter unten auf der
Webseite) und muss sich den mit Free Pascal (FPC) selber kompilieren,
z.B. mit
c:\FPC\2.6.4\win64\bin\i386-win32\ppcrossx64 -Xs -B gavrasm
auf der Kommandozeile (Pfade und Kompilierdatei an die eigene
FPC-Version anpassen).
gavrasm ist gezippt. Um es auszupacken, rechtsklicke man auf die Datei
und wähle "Alles extrahieren". Das erzeugt einen neuen
Ordner, in dem die ausgepackten Dateien herumliegen.
Die drei Dateien gavrasm.exe, LiesMich.Txt und instr.asm verschiebe
man aus diesem Ordner in den Ordner darüber, den leeren Ordner
und die gezippte Datei kann man dann löschen.
An den Seitenanfang, zur Leitseite
Schritt 2: Mit gavrasm vertraut machen
In der LiesMich.Txt-Datei steht alles Wissenswerte über den
Assembler gavrasm. Gleich zu Anfang stehen die Regeln, wie man den
aufruft und was er mit dem "-"Schaltern alles anders
macht als normal. Für den Anfänger ist "-seb"
die beste Wahl.
Das hier sind alle AVR-Typen, die gavrasm kennt und für die
er die Definitionen verinnerlicht hat. Versuche nicht, irgendwelche
anderen Prozessorfamilien als 8-Bit-AVR damit zu assemblieren, das
geht schief. Die Suffixe A, P, etc. sind meistens
überflüssiges Beiwerk, weil sich die Definitionen meistens
gar nicht unterscheiden. Aber gavrasm kennt sie alle ganz genau.
An den Seitenanfang, zur Leitseite
Schritt 3: Eine Batch-Datei zum Assemblieren erzeugen
Die Ritter der Kommandozeile sind jetzt schon bedient: sie navigieren
mit "cd" zu dem Ordner und tippen "gavrasm -seb
mein_asm_code" ein und sind fertig.
Wer tippfauler ist, erzeugt sich eine Batch-Datei. Dazu ein Rechtsklick
in den Ordner, "Neu" und "Textdatei". Wir nennen das
Ding "assemblieren.bat" und bestätigen den nervigen Dialog.
Mit einem Rechtsklick auf die neu erzeugte Datei und "Bearbeiten"
sollte sich wieder der Editor Notepad öffnen und wir tippen
Nebenstehendes darin ein. Nicht vergessen zu speichern, bevor wir
die Batch-Datei wieder zumachen.
An den Seitenanfang, zur Leitseite
Schritt 4: Assemblieren
Durch Doppelklicken auf die Batch-Datei startet nun der Assembler und
verrichtet seine Arbeit in einem schwarzen Fenster. Er geruht uns in
dem Fenster alles Wissenwerte mitzuteilen, z.B. dass er zwei
Durchläufe absolviert hat. Eine Warnung hat er ausgegeben,
nämlich dass er die verinnerlichten Symboldefinitionen verwendet
hat statt die Datei "tn13def.inc" zu lesen.
Immerhin hat er das alles ohne Fehler gefressen, und das wollten wir
sehen.
Taucht hier die Fehlermeldung "Include-Datei nicht gefunden!"
auf, dann gehört zu der asm-Datei eine (oder mehrere)
Include-Dateien. Die müssen wir natürlich in den Ordner
dazupacken, damit er glücklich wird.
Fehler werden bei gavrasm in einer separaten Datei .err aufgelistet,
mit der man übersichtlicher durch den Quellcode navigieren
kann als mit dem unübersichtlichen Listing.
In der neu erzeugten Datei "mein_asm_code.lst" gibt der
Assembler alles Wissenswerte über den Assemblierprozess bekannt.
Darunter sind die Adressen, die erzeugten Hexadezimalcodes des
Programmes und vieles andere mehr.
Da wir beim Aufruf von gavrasm -s mit angegeben haben, erzeugt er
am Ende eine Symboltabelle. Sie zeigt alle Symbole an, von T wie
Typ über L wie Label (Adresse im Programm) bis zu R wie
Register (alle verwendeten Register). Hätten wir auch
Konstanten verwendet, käme als Symboltyp noch C hinzu. Auch
Makros, die im Quellcode verwendet werden, sind aufgelistet.
So eine Symboltabelle kriegt man nur mit gavrasm, das macht kein anderer
Assembler. Der ATMEL-Assembler gibt stattdessen die verwendeten
Instruktionen bekannt, verrät aber nicht, wozu man den Unsinn
außer für die häre Statistik eigentlich gebrauchen
kann.
Ist der Assembliervorgang ohne Fehler absolviert, dann erzeugt
gavrasm eine weitere Datei mit Suffix .hex. Diese enthält
den erzeugten Hexcode im Intel-Hex-Format, der direkt von der
Brennersoftware verstanden wird und in den Flashspeicher des
AVRs gelotst werden kann.
Falls im Quellcode auch Inhalte für das EEPROM definiert
sind, sind diese in der .eep-Datei ebenfalls in Intel-Hex-Format
abgelegt, damit sie von der Brennersoftware verstanden werden.
An den Seitenanfang, zur Leitseite
©2014-2017 by http://www.avr-asm-tutorial.net