Forum: Compiler & IDEs Doku zu gcc assembler


von Scheintod (Gast)


Lesenswert?

Hallo zusammen,

ich bin auf der Suche nach Doku zu den opcodes, wie sie im gcc-as
verwendet werden. Die unterscheiden sich ja von denen in der Doku von
Atmel. (z.B. schreibe ich jetzt ldi 16, 0x05 oder ldi r16, 0x05).
Allgemeine Doku/Einführung zum gcc-as wäre auch nicht verkehrt (z.B.
wie werden jmp umgesetzt, etc...).

Besten Dank,

Scheintod

von Scheintod (Gast)


Lesenswert?

Hallo nochmal.

Ganz vergessen zu sagen (vielleicht deshalb so wenig Antworten ;) dass
es natürlich um den avr geht. Ich finde zwar Doku zu allen möglichen
Assemblern für den AVR, leider aber extrem spärlich zum gcc-as.
Vielleicht suche ich ja auch nur am falschen Ort?

Das Projekt ist übrigens die Portierung der avr231 (aes-bootloader) vim
iar auf den gcc.

Führt mich nebenbei zu einer anderen Frage noch: Hat jemand Ahnung wie
bei Atmel die Lizenzbedingungen für den code der application-notes
aussehen? Habe da auf direkte Anfrage noch keine Antwort bekommen.
Würde aber gerne die portierte AN auch anderen weitergeben (z.B. hier
in der code-library).

Besten Dank,

Scheintod

von Chef (Gast)


Lesenswert?

Du hast da etwas falsch verstanden.
Die Opcodes sind dieselben.

von Mathias Müller (Gast)


Angehängte Dateien:

Lesenswert?

Die Opcodes sind tatsächlich dieselben, aber die Direktiven
unterscheiden sich, die sind aber in der GNU-Assembler Doku (siehe
Anhang) recht gut beschrieben. Weiß allerdings nicht ob die auch für
den gcc gelten.

von Scheintod (Gast)


Lesenswert?

Hi Mathias,

Danke für das PDF. Mein letztes Assembler-Programm liegt schon 15 Jahre
zurück (War damals für den Amiga). Von daher kann es schon sein, dass
ich manches Missverstehe. Doku für den avr-gas zu finden ist
tatsächlich nicht einfach. (Und ich suche schon eine ganze weile) Das
PDF beinhaltet ja auch nichts für den avr.

Was mich verwirrt ist z.B. eben, dass in der avr-assembler doku von
atmel ein Register mit z.B. mit 'r15' angesprochen wird. In einem der
wenigen avr-gas dokus z.B. hier:
http://ftp.gnu.org/savannah/files/avr-libc/snapshots/doc/avr-libc-user-manual-dev/assembler.html
das Register alleine mit '15' angesprochen wird.
(Inzwischen habe ich wieder andere Beispiele gefunden, wo das r dann
doch verwendet wird ... das verstehe mal einer)

In Deiner Doku stand auch für diverse Prozessoren die 'optimierte'
jmp Anweisung, die sich je nach Sprungweite die richtige
assembler-Anweisung heraussucht.

In den Beispielcode, die ich online gefunden habe, wird dagegen für
solche Zwecke ein #define Makro verwendet.

Daher kahm meine Vermutung, dass es tatsächlich Unterschiede gibt.
Zumindest lässt er sich benutzen. Ich glaube ich werde mich mal an die
sourcen der avr-libc halten (ist ja genug in assembler dabei) und mit
dem as.pdf sollte ich dann auch die Direktiven verstehen. Besten Dank
also noch mal :)

Schoene Gruesse,

Scheintod

von Mark M. (mmmoor)


Lesenswert?

Hallo Scheintod,

ich versuche mich auch an der Portierung des AVR231 von IAR nach GCC
und habe ähnliche Probleme. Bist du inzwischen weiter?

schoenen Gruss
Mark

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


Lesenswert?

Beschreib doch lieber deine konkreten Probleme und mach am besten
einen eigenen Thread dafür auf.  Ich habe inzwischen schon einiges an
ANs konvertiert (und teilweise auch wieder gen Norwegen geschickt),
mit 'ner konkreten Antwort auf eine konkrete Frage kann sicher (nicht
nur) ich hier aushelfen.

von Mark M. (mmmoor)


Lesenswert?

Hallo Jörg,

vielen Dank für den Hinweis, ich habe meine konkrete Frage  ins GCC
Forum mit dem Betreff "Portierung AVR231 (AES Bootloader) in GCC"
gestellt.

Beste Grüsse
Mark

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.