SRAM und GCC

Gast #176884
Hallo,

ich habe ein paar Fragen zum SRAM und deren Nutzung in GCC.
Da ich in einer Assembler-Unterfunktion mehrere Bytes (max. 126Bytes
mit ATmega16) im SRAM ablege (ab Adresse 0x60), wollte ich die Bytes
später im C-Hauptprogramm wieder einlesen und sie an ein Lcd-Display
ausgeben.
Es es überhaupt möglich den SRAM in AVR GCC zu nutzen, da auch der
Compiler den SRAM für seine Variablen nutzt?
Und wenn ja, gibt es schon eine Funktion für den Zugriff auf den SRAM.

Ich habe in der AVR-Doku zwar gefunden wie man den EEPROM und den
Programm-Flash liest und schreibt, aber leider nicht den SRAM.

Gruß
Patrick
Gast
Du benutzt keine feste Adresse, sondern eine globale Variable.  Das
beste ist es, wenn Du den Compiler die globale Variable (als array)
anlegen läßt, dann hast Du im Assembler keinen Streß damit.
Gast
Hallo,
erst mal vielen Dank für deine schnelle Antwort.
Ich habe ein globales Array (unsigned char adressen[126];) angelegt.
Allerdings weiß ich nicht,wie ich das Array im Assembler jetzt
beschreiben kann.
So habe ich es eigentlich gedacht: mov adressen[r16],r20
wobei r16 im Programm hochgezählt wird.

Vermutlich ist die Frage ziemlich blöde, aber ich bin ein absoluter
Neuling, habt deshalb bitte etwas Nachsicht mit mir. Danke.

Gruß Patrick
Gast
ldi rXX, lo8(adressen)
ldi rXY, hi8(adressen)

Wenn Du lieb zu Deiner Nachwelt sein willst, schreibst Du davor noch:

.global adressen

aber das hat nur Dokumentarwert, ist ansonsten ein NOP.

Wie Du die Indizierung bzw. das Hochzählen dann machst, weißt Du
vermutlich besser als ich, schließlich hast Du Dich ja für Assembler
entschieden. ;-)  Ich nehme dann gleich lieber C...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 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.