Forum: Mikrocontroller und Digitale Elektronik AVR mit Assembler und MAC


von Marius (Gast)


Lesenswert?

Hallo, ich habe schon vieles gelesen zum Thema Mac, AVG und Toolchain...

Ich wollte eigentlich nur einmal ein kleines Testprogramm in Assembler 
schreiben und mich später auf die C-Programmierung stürzen. Aber, unter 
Mac schaffe ich es nicht, meine Assembler Datei zu Compilieren.

Ich habe bereits das AVRMacPack installiert und mir steht damit der 
befeht "avr-as" zur Verfügung. Ich dachte eigentlich, dass das der AVR 
Assembler ist.

Mit dem Befehl:

# avr-as test.asm

Kommt aber immer nur:

[...]
test1.asm:5: Error: unknown pseudo-op: `.def'
test1.asm:12: Error: constant value required
test1.asm:12: Error: register number above 15 required
test1.asm:13: Error: constant value required
test1.asm:13: Error: constant value required
test1.asm:14: Error: constant value required
test1.asm:14: Error: register number above 15 required
test1.asm:15: Error: constant value required
test1.asm:15: Error: constant value required
test1.asm:19: Error: constant value required
test1.asm:19: Error: register number above 15 required
test1.asm:20: Error: constant value required
test1.asm:20: Error: constant value required

wobei das nur die letzten Zeilen sind. Mein Assembler Programm für einen 
ATmega8:

.NOLIST
.INCLUDE "m8def.inc"
.LIST

.DEF tmp = R16

RJMP main


main:

  LDI tmp,0xFF
  OUT DDRB,tmp
  LDI tmp,0X00
  OUT DDRA,tmp

loop:

  LDI tmp,PORTA
  OUT PORTB,tmp
  RJMP loop


Was mache ich falsch? Warum läuft der Assembler nicht?

Grüße, Marius

von SiO2 (Gast)


Lesenswert?

Ich kenne den Assembler nicht, aber vielleicht kann er diese Syntax 
nicht. Wenn der as auf dem gas basiert, klappts nicht.  Wenn keine 
wiklich hilfreichen Kommentare noch kommen, versuch mal den tavrasm bei 
Dir zu Installieren/kompilieren. Der ist schnell (schneller als gavrasm 
;) ) und eigentlich gut. Ich nutze den auch.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Das ist der gas.  Entweder halt einen anderen Assembler benutzen
oder aber den Quellcode so umbauen, dass gas damit klar kommt.
Letzteres wäre vor allem dann interessant, wenn künftig Assembler
mit C gemischt werden soll.

von Marius (Gast)


Lesenswert?

Langsam verstehe ich, was dem Assembler missfällt...

Ich werde mal die Syntax ändern...

von Ralf S. (spacedog) Benutzerseite


Lesenswert?

Hallo Marius

Das Problem hatte ich anfangs auch. Des Rätsels Lösung ist nun 
folgendes:

Der 'avr-as' der auf der gcc basiert hat ein wenig ne andere Syntax, als 
der Assembler vom AVR-Studio. Damit kannst du den ganzen Kram von hier 
im Forum nicht assemblieren, da das alles auf ARV-Studio beruht. Zum 
Glück wurde der Assemler von Atmel jedoch in opensource nachgebaut. Das 
ganze nennt sich dann 'avra'.

Dein "m8def.inc" muss dann zwar immer noch irgendwo vorhanden sein, 
jedoch kannst du dann alles aus dem Tutorial usw. assemblieren.

Zu beziehen gibts die ganze Toolchain bequem unter:

  * http://www.digithink.com/OSX-AVR/Introduction/Main?from=Main.Main

Du kannst 'avra' natürlich auch problemlos selber kompilieren, wenn du 
ne aktuellere Version brauchst. Download unter:

  * http://avra.sourceforge.net/

von 3353 (Gast)


Lesenswert?

Es ist kein Zufall dass die ganze globale Engineering Community mit PCs 
arbeitet und die Kuenstler, Grafiker, Musiker und dergl mit MACs. Wenn's 
um Engineering geht hat man mit einem MAC das ganz kurze Streichholz.

von Ralf S. (spacedog) Benutzerseite


Lesenswert?

Da hast du natürlich recht, da kann ich dir wirklich nicht 
widersprechen.

Aber das Problem ist halt, dass ich PCs nur noch anfasse, wenn ich unter 
Androhung des Todes dazu gezwungen werde oder zumindest eine Haufen Geld 
dafür bekomme. Und ich denke Marius geht's da ähnlich wie mir. Da will 
man dann halt auch beim Basteln nicht auf seinen Mac verzichten.

Aber zum Glück gibt's ja die guten alten Linux-Leute, welche alles was 
man so braucht als open source programmieren. Das lauft dann i.d.R. ohne 
Anpassungen auch auf nem Mac.

Versteh mich bitte nicht falsch, ich war früher auch ein gläubiger 
Windows-Jünger und habe sogar über Apple gelacht. Ausserdem ist Windows 
natürlich der Industriestandard, das macht vieles einfacher und 
bequemer. Aber seit ich auf Mac umgestiegen bin, ich sag dir, da krieg 
ich soooon'Hals wenn ich auch nur schon an Microsoft denke; da könnt ich 
ausrasten.

von 3353 (Gast)


Lesenswert?

Ich bin kein Windows Fan, das Angebot an technischen Loesungen ist fuer 
den PC um Groessenordnungen groesser. Ich schalt der PC ein, um ein 
Problem zu loesen, so einfach wie moeglich.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Ob Mac oder PC ist ziemlich egal, bei der Hardware gibt es kaum noch 
Unterschiede. Nur auf Windows kann man leider nicht immer verzichten. 
Aber für Hobby-Programmierung ist sowohl Linux als auch OS X völlig 
ausreichend.

von Marius (Gast)


Lesenswert?

Hi, ich hab es mittlerweile geschafft, auch wenn ich jetzt doch nicht in 
Assembler teste, sondern direkt mit avr-gcc...

Kurz zum Mac: Ich habe bisher immer viel mit Windows PCs gemacht, 
eigentlich seit Win 3.1. Und auch auf meinem MacMini (sitzte gerade 
dran) und meinem morgen hoffentlich ankommendem MacBook Pro habe/werde 
ich Windows XP laufen haben, parallel zu Mac.

Allerdings ist es mir bisher noch nicht passiert, dass ich (außer für 
einige Spiele) Windows wirklich gebraucht habe. Durch den Unix unterbau 
und vor allem durch die jetzt Intel Plattform laufen ALLE Programme auch 
auf einem Mac. Mit Parallels sogar ohne Zeitverlust.

Notwendig ist ein Mac aber nicht wirklich, ich finde halt Design und OS 
super und möchte weniger mit Windows zu tun haben.

Richtige Entwickler und Coder werden aber weder Mac noch Windows 
benutzen, sondern Unix/Linux/BSD bevorzugen.

So, nochmals Danke für eure Hilfe, aber lasst uns nicht mehr über Mac 
und Windows reden... :)

Grüße, Marius

von Ralf S. (spacedog) Benutzerseite


Lesenswert?

> So, nochmals Danke für eure Hilfe, aber lasst uns nicht mehr über Mac
> und Windows reden... :)

Die Worte eines weisen Mannes.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

3353 wrote:

> Ich bin kein Windows Fan, das Angebot an technischen Loesungen ist fuer
> den PC um Groessenordnungen groesser.

Ist besonders in diesem Zusammenhang eine völlig sinnlose Bemerkung.
Erstens ist gerade der Assembler vom AVR Studio nun wirklich alles
andere als eine Glanzleistung (Absolutassembler hat man vor 20 Jahren
schon nicht mehr benutzt) -- so mies, dass Eric Weddington alles daran
setzt, dass man diese sinnlose Doppelentwicklung bei Atmel ganz
einstellt und stattdessen ein Sourcecode-Filter für den GNU Assembler
mit ausliefert.  Zweitens gibt's ja trotzdem auch für die Unix- und
MacOS-X-Welt als Parallelentwicklung wenigstens einen (wenn nicht sogar
zwei) bug- und featurekompatible Assembler.  Windows-Nutzer haben hier
in diesem konkreten Falle mal keinen einzigen Vorteil, sondern eher nur
Nachteile.  (Der letzte Versuch, ein AVR Studio zu upgraden, hat meine
einzige eigene Windows-Kiste komplett geschrottet.  Die AVR-Studio-
Installation ist nicht benutzbar und eine erneute Installation bringt
immer nur die gleiche Fehlermeldung tief aus dem Windows-Bereich.  Nach
der kannste gugeln, und die gibt's reihum bei aller möglicher Software
immer mal wieder, die auf der VC++-Runtime aufsetzt, ohne dass es eine
vernünftige Lösung dafür gäbe.  Bleibt wohl nur Neuinstallieren.  Wen's
interessiert, dem verrate ich auch gern, wann ich mein FreeBSD zu Hause
das letzte Mal neu installiert habe...)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Marius wrote:

> Richtige Entwickler und Coder werden aber weder Mac noch Windows
> benutzen, sondern Unix/Linux/BSD bevorzugen.

Nö, Mac ist mittlerweile, seit er auf etwas unixoidem basiert und man
eine Kommandozeile bekommen kann, auch dort durchaus gut gefragt.  Ich
kenne viele, die früher nur mit unixoiden Systemen gearbeitet haben,
aber mittlerweile gern einen Mac benutzen.  Aber das sollten wir wohl
im Off-Topic-Forum weiter diskutieren.

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.