Forum: Mikrocontroller und Digitale Elektronik Probleme beim Assemblieren unter Linux


von Uwe Naumann (Gast)


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

von Armin Voetter (Gast)


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

von Martin #. (martin-)


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.

von Armin Voetter (Gast)


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

von Martin #. (martin-)


Lesenswert?

>für debian benutzer ist das im moment nicht unbedingt der
>sinnvollste Assembler - siehe

Ich habe mir den Thread durchgelesen und verstehe weiterhin nicht wo
das Problem mit dem avra-assembler liegt und warum es nur auf debian
zutreffen.

von Armin Voetter (Gast)


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

von Martin #. (martin-)


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.

von Armin Voetter (Gast)


Lesenswert?

nachdem das eh schon alles off topic ist - welchen anderen simulator
gibts für linux?
Ich hab avrora probiert, komm damit aber ueberhaupt nicht klar.

von Martin #. (martin-)


Lesenswert?

Also ich kenne leider keinen.
Halb fertige Programme die alle beta sind, machen hier keinen Sinn.Auf
Simulator muss man sich verlassen können.

Ich auch gerne einen AVR-Simulator der mit AVRStdio vergleichber wäre.
Könnte ruhig was kosten.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.