mikrocontroller.net

Forum: Compiler & IDEs GCC Assembler ARM Makro


Autor: romanua (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich moechte folgendes in ARM assembler machen:

Quelle:
code_abschnitt1
a=code_abschnitt2


Compilliert moechte ich es so haben, ob die Quelle so geschrieben war:

code_abschnitt2
code_abschnitt1

Was ich brauche, ist die Moeglichkeit Codeabschnitte zu kennzeichen und
sie dann an beliebigen Stellen platzen.

Wie macht man das? Ich habe schon GS Manual durch und  habe sie
entweder nicht verstanden (was mir mit GS manual oft passiert) oder
habe ich es uebersehen.


Danke im Vorraus.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du musst .section's einführen und diese dann im Linkescript
entsprechend platzieren.

Autor: romanua (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Joerg,

Danke fuer die Antwort.

Kannst Du mir erklaeren was .macro macht?

Wuerde es so gehen oder is es kompletter Bloedsinn?




test

cod_abschnitt1

.macro test
cod_abschnitt2
.endm

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Macro ist eine einfache Ersetzung, das solltest du dir in
...zigtausend Dokumenten im Internet anlesen können.  Praktisch
jeder Assembler implementiert Makros (mehr oder minder gut).

Da man Makros erst benutzen kann, nachdem sie definiert worden
sind, gänge es höchstens so:

.macro  code1
cod_abschnitt1
.endm

.macro  code2
cod_abschnitt2
.endmf

code2
code1

Du hast dein Problem sehr dürftig beschrieben, sodass ich nicht
weiß, ob das bereits dein Problem lösen würde.  Allgemein kann
ich dir aber sagen, dass die Variante mit sections auf jeden
Fall funktionieren wird.  Auf diese Weise werden typischerweise
auch Dinge wie Interruptvektoren an die passende Stelle sortiert.
Dafür isses natürlich mehr Aufwand.

Autor: romanua (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok Danke, .macro ist das, was ich brauche.


Ich wollte nur einen Codeabschnitt A hinter dem Abschnitt B
platzieren, obwohl ich Abschnitt A vor Abschnitt B eingetippt habe.
Wo im Speicher nicht wichtig. Mehr ist es nicht. Deswegen ist .section,
 glaube ich, mehr flexibilitaet als noetig.

>zigtausend Dokumenten im Internet.

Das kann sein. Hilft aber nur dann, wenn man weiss, was man sucht.
Aus GAS Manual habe ich eben nicht bzw. nicht sofort verstanden fuer
was .macro gut ist.

Danke nochmals fuer die Hilfe!

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.