mikrocontroller.net

Forum: Compiler & IDEs Konstanten ins Flash unter Assembler


Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

kann mir jemand sagen, wie ich eine oder mehrere Konstanten unter 
Assembler ins Flash bekomme? Ich denke, daß ich irgendwie eine 
data-section anlegen muß.

Danke, Markus

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genauer gesagt: Du mußt Dir eine .progmem-Section anlegen.

Das einfachste ist, Du machst es im C Programm und schaust Dir
an, was der Compiler dafür generiert (avr-gcc -S).  Dann weißt
Du, was Du im Aseembler schreiben mußt.  Aber eigentlich kannst
Du sie natürlich dann gleich vom Compiler anlegen lassen. ;-)
Sagt ja nicht, daß man sie deshalb nicht in einem Stück
Assemblerprogramm benutzen könnte...

Autor: Claus Krause (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mojn Markus,

beim MSP430 Assembler (IAR) füge einfach Folgendes im Code ein:
...beliebiger programmcode
jmp    Datenbereich_Ende
Datenbereich_Anfang
DW     0x1234
Datenbereich_Ende
beliebiger programmcode...

Du kannst auch die DW... Zeile einfach hinter deinen letzten Befehl im 
Programm setzen, dann sparst du den Sprung.
DW steht für 16bit Konstante (DB kann für 8bit genommen werden). 
Verwendest du 8bit Konstanten mitten im Code, achte darauf, daß es eine 
gerade Anzahl von Werten ist. Sind eine ungerade Zahl von Konstanten 
zusammen gekommen, dann füge hinter die letzte DB-Zeile eines 
Konstantenblocks folgende Zeile ein:
EVEN

Damit wird der Programmcounter wieder auf eine gültige (gerade) Adresse 
gesetzt.

Im Manual zum Assembler steht dies alles noch einmal beschrieben.


Gruß,
Claus.

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.