Forum: Compiler & IDEs Konstanten ins Flash unter Assembler


von Markus (Gast)


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

von Joerg Wunsch (Gast)


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...

von Claus Krause (Gast)


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.

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.