Konstanten ins Flash unter Assembler

Gast #40117
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...
Gast #40118
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

Eine eigene Frage? Dieser Thread ist über 23 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.