Probleme beim Assemblieren unter Linux

Gast #71137
Lesenswert?
• ▲
▼
Hallo,

ich habe hier ein Assembler-Programm für den AT90S2313, welches sich
unter Windows mit dem Atmel-Assembler problemlos übersetzen lässt und
das unter Linux rumzickt.

Wenn ich mit tavrasm übersetzen will , dann meckert der eine Zuweisung
in der Include-File für den AT90S2313 an:

[naumannu@meiner Drehzahlmesser]$ tavrasm DZM.asm
2313def.inc:190: Error : Expected ID = expression
2313def.inc:190: '.equ  OR      =3'

Auskommentiern hilft zwar, aber das kanns ja nicht sein.

Wenn ich versuche das Ganze mit avra zu übersetzen, dann sieht das so
aus:

[naumannu@meiner Drehzahlmesser]$ avra DZM.asm
AVRA: advanced AVR macro assembler Version 1.0.0 Build 204 (12.
February 2004)

Pass 1...
Pass 2...
DZM.asm(162) : error : Found no label/variable/constant named LOW
DZM.asm(163) : error : Found no label/variable/constant named HIGH
DZM.asm(179) : error : Found no label/variable/constant named LOW
DZM.asm(180) : error : Found no label/variable/constant named HIGH
DZM.asm(201) : error : Found no label/variable/constant named LOW
DZM.asm(202) : error : Found no label/variable/constant named HIGH
DZM.asm(218) : error : Found no label/variable/constant named LOW
DZM.asm(219) : error : Found no label/variable/constant named HIGH
done

Assembly aborted with 8 errors and 0 warnings.

Gibts eine Ersetzung für das LOW/HIGH-Statement?

Hat jemand sonstige Tipps für mich?

Gruß Uwe
Gast #71138
Lesenswert?
• ▲
▼
Absatz auf http://www.tavrasm.org/:

# When compiling files using the '8515def.inc' file from Atmel, you
will receive an error. This is because Atmel choose to use the keyword
OR as a variable name, 'tavrasm' won't allow this (it is like saying
while=4 in C :). To fix the problem, just rename the variable.

--

Ist bei dir das selbe Problem nehm ich an - Lösung: die variable
umbenennen. Auf
http://mirror.isp.net.au/ftp/pub/FreeBSD/ports/devel/tavrasm/files/
findest einen patch der das Problem lösen sollte.

Anmerkung: bin absoluter Microcontroller Anfänger und habe keine Ahnung
was ich da tue!

Armin
#71139
Lesenswert?
• ▲
▼
AVRA hat keine .inc oder sie sind un vollständig.
Also manch folgendes:
-Instaliere unter Windows AVRStudio

-Such nach diesem Verzeichnis
C/Programme/Atmel/AVR Tools/AvrAssembler/Appnotes
(vielleicht ist es aber bei dir woanders, hauptsache es heisst Appnotes
und drine sind lauter .inc dateien)

-jeztz kopiere das ganze Verzeicchnis Appnotes am besten dort hinwo
avra unter linux instaliert ist (man muss es eigentlich nicht aber so
ist es elleganter finde ich)

Der jetzt musst du beim kompilieren Pfad zu include dateien
einstellen:
avra -I /hier ganzer Pfad Appnotes quellcode.asm

Man es sicher noch anders lösen so funktioiert aber auch.
Gast #71140
Lesenswert?
• ▲
▼
Anmerkung: avra ist der Variablenname OR egal, dh. dort hat man das
Problem nicht, der Fehler tritt nur bei tavrasm auf.

> -Instaliere unter Windows AVRStudio

Die include Dateien kann man auch vom Command Line Assembler
(http://www.atmel.com/dyn/resources/prod_documents/ASM.ZIP) "klauen",
da braucht man nix installieren.

@avra: für debian benutzer ist das im moment nicht unbedingt der
sinnvollste Assembler - siehe
http://www.mikrocontroller.net/forum/read-2-178846.html#181135

Grüße aus Wien
Armin
Gast #71142
Lesenswert?
• ▲
▼
Das Problem ist schnell erklärt: Man kann den von avra generierten
Maschinencode nicht im Simulator ausführen, geschweige denn Debuggen.

Ob es nur Debian betrifft weiß ich nicht, ich hab auch keinen Plan
warum es nicht geht.

Armin
#71143
Lesenswert?
• ▲
▼
Wenn du den avr_simulator meinst, dann wunder mich das gar nicht.
Dieser Simulator hat zu halt viele Unzulänglichkeiten,um ihn wirklich
benuzten zu können.Obwohl einfach eine hex-datei, die mit avra erzeugt
wurde, zu laden und zu disassemblieren geht.
Sie müsste eigentlich auch völlig gleich sein wie eine hex-Datei die
mit einem anderen Assembler assembliert wurde.
Es wird ja nur assembliert.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.