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
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...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.