Atmel Assembler Programmierung unter Mac mit CrossPack

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Atmel Assembler Programmierung unter Mac mit CrossPack

    Ich bin Anfänger und habe mich anhand der Anleitung vom CrossPack schon
    durch das make von C Code gekämpft.

    Aber ich möchte mit dem Assembler Tutorial von mikrocontroller.net ganz von vorne anfangen.
    Nun versuche ich vergebens herauszufinden warum mir dieser Fehler
    angezeigt wird:

    Ivans-MacBook-Pro:IO ivanhorler$ avr-gcc-select 4
    Current default compiler: gcc 4
    Ivans-MacBook-Pro:IO ivanhorler$ make
    make: *** No rule to make target `main.o', needed by `main.elf'. Stop.
    Ivans-MacBook-Pro:IO ivanhorler$ avr-gcc-select 3
    Current default compiler: gcc 3
    Ivans-MacBook-Pro:IO ivanhorler$ make
    make: *** No rule to make target `main.o', needed by `main.elf'. Stop.

    Wie ihr sieht geht es mit beiden gcc Versionen nicht.

    Verstehe ich das falsch und der gcc muss für Assembler Kompilierung
    anders angesprochen werden, oder fehlt was an meiner Installation?

    Aus diesen Artikeln nehme ich heraus das es so eigentlich gehen müsste.

    pololu.com/docs/0J36/5.b
    Programs for the AVR can now be compiled at the command line using the
    avr-gcc C compilers and the avr-as assembler. For detailed instructions,
    see the CrossPack development manual, which is installed in the
    CrossPack-AVR directory along with the tools.

    http://fab.cba.mit.edu/classes/MIT/863.09/people/m...
    GNU's assembler is conveniently included in the CrossPack package for
    Mac OS X, WinAVR for Windows, and the gcc-avr packages on various Linux
    distributions. Unfortunately, it has awkward syntax, requiring
    _SFR_IO_ADDR() around the names of the I/O registers. Confusingly,
    you'll need to compile your code with avr-gcc, even though it's
    assembly. If you try avr-as, you'll get a message like "Error: constant
    value required".


    Kann mir jemand bestätigen das dieser Vorgang eigentlich korrekt ist?
  • Unter OS X habe ich AVR's nur in C (+ manchmal inline Assembler) programmiert. Dazu braucht man ein Makefile, das man gegebenfalls anpassen muss.

    Vorschlag 1: such mit deiner lieblings Suchmaschine nach: gcc avr assembler

    Vorschlag 2: lade dir AVR-Studio runter und programmier damit in Assembler. Hier hast Du auch einen Simulator und kannst dein Programm schrittweise durchgehen, um nachzuvollziehen was genau passiert.

    Anmerkung: die Assemblerbefehle bzw. Mnemonics sind nicht bei allen Assemblers indentisch bzw. es herrscht hier nicht eine einheitliche Sprache bzw. Schreibweise. Das Tutorial bei mikrocontroller.net bezieht sich sicher auf AVR Studio. Um dich nicht damit ewig zu beschäftigen, installier dir AVR-Studio.

    Übrigens: ohne deinem Makefile kann man nicht den Fehler "make: *** No rule to make target `main.o', needed by `main.elf'. Stop." ganz genau deuten.
  • mal eine frage in den raum geworfen. sollte man assembler für x86 prozessoren lernt? (für mac osx und ios) überall steht es gibt verschiedene syntaxen und befehle für verschiedene prozessoren...
    kennt vllt jemand ein gutes buch dazu?

    Ap3x
    Mein iPhone Blog
    :thumbsup:
  • Ap3x schrieb:

    sollte man assembler für x86 prozessoren lernt?

    Kann hilfreich sein. Genau wie das Studium der Linguistik hilfreich sein kann, lesen und schreiben zu perfektionieren. Lernen kann man es allerdings auch ohne dieses Studium.

    Assembler wird häufig nur für Microcontroller im Heimbereich genutzt. Als Schlagwort sei hier Arduino angebracht.
    Zur Ansteuerung von eigenen Prozessoren in eigenen Hardwareentwicklungen ist es ganz prima, doch wird auch dafür im Allgemeinen C verwendet.

    Es gibt keinen Grund Assembler zu lernen, außer einem: man möchte es. ;)
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Lucas de Vil schrieb:

    Ap3x schrieb:

    sollte man assembler für x86 prozessoren lernt?

    Kann hilfreich sein. Genau wie das Studium der Linguistik hilfreich sein kann, lesen und schreiben zu perfektionieren. Lernen kann man es allerdings auch ohne dieses Studium.

    Assembler wird häufig nur für Microcontroller im Heimbereich genutzt. Als Schlagwort sei hier Arduino angebracht.
    Zur Ansteuerung von eigenen Prozessoren in eigenen Hardwareentwicklungen ist es ganz prima, doch wird auch dafür im Allgemeinen C verwendet.

    Es gibt keinen Grund Assembler zu lernen, außer einem: man möchte es. ;)


    ich hab hier ein zwei bücher, in denen assembler code drin steht. wäre halt hilfreich das zu verstehen ;) (bücher behandeln ios und osx)
    deswegen dachte ich, schadet nicht die grundlagen von assembler zu lernen.

    Ap3x
    Mein iPhone Blog
    :thumbsup:
  • In dem Fall schau mal dort rein:
    homepage.mac.com/randyhyde/web…PDFs/0_PDFIndexLinux.html

    Die Offline-Version ist kompliziert zu lesen, aber immerhin kostenlos.
    Natürlich kannst du auch die papierne Version bestellen. ;)
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Wenn du deine iOS Programme in Assembler schreiben willst, dann ja.
    Obacht: iPhone bis 3G und iPod touch bis 2G haben den ARMv6, iPad, iPhone ab 3GS und iPod touch ab 3G ARMv7.
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P