www.mikrocontroller.net

Forum: Compiler & IDEs GNU Assembler und Daten im SRAM


Autor: HubertB (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Ulf Rolf (roolf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
.section .data (für Konstanten)
.section .bss (für uninitialisiertes SRAM)

Autor: HubertB (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

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.