GNU Assembler und Daten im SRAM

Gast #1556578
Lesenswert?

Hallo!

Ich versuche gerade folgendes (AVR-Studio Syntax) mit dem GNU Assembler 
(avr-gcc) zu machen:

.DSEG
MEIN_KLEINES_FELD:   .BYTE 32

Später im Code möchte ich dann mit

LDI XH, HIGH(MEIN_KLEINES_FELD)
LDI XL, LOW(MEIN_KLEINES_FELD)

darauf zurgreifen. Mittlerweile habe ich rausgefunden, dass man beim GNU 
Assembler (GAS) statt HIGH und LOW hi8 bzw. lo8 verwenden muss. Aber 
beim Rest komme ich leider nicht weiter. Wie gebe ich ihm das unter GNU 
Assembler an? .DSEG kennt er nämlich nicht :-(

Danke im Vorraus!
Gast #1556666
Lesenswert?

Super Danke!

Ich hab noch ne kleine Verständnisfrage: Sowohl .section .bss als auch 
.section .data liegen dann im SRAM und .section .text liegt dann im 
Flash (wäre also sowas wie .CSEG im AVR Studio).

Ist das so richtig?
Moderator Persönliche Seite #1556782
Lesenswert?

Ja, das ist so.  Wenn du den C-Startup-Code benutzt, dann würde
dieser .bss beim Start ausnullen, während er für .data hinter .text
die Initialisierungsdaten erwartet, die er aus dem Flash dahin
kopiert.

Wenn du das alles rein im Assembler machst, sind .bss und .data
für die praktisch dasselbe.  Du tust natürlich gut daran, wenn du
dich an die Konvention hälst, denn dann kann das auch mal jemand
anders nachvollziehen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren