mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme beim Assemblieren unter Linux


Autor: Uwe Naumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Armin Voetter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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/dev...
findest einen patch der das Problem lösen sollte.

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

Armin

Autor: Martin #### (martin-)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Armin Voetter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Grüße aus Wien
Armin

Autor: Martin #### (martin-)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Armin Voetter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Martin #### (martin-)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Armin Voetter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Martin #### (martin-)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.