SRAM: Programmspeicher "neu anordnen" ?

Gast #438719
Lesenswert?
• ▲
▼
Hallo zusammen,

ich hab ein Verständnissproblem, ich möchte gerne selber festlegen wo 
ein bestimmter Buffer liegen soll.

Ich hab einen ATmega128 mit externen SRAM.
Dieser beginnt bei Adresse 0x1100 soweit so gut.

Nun habe ich nen paar Sachen reseviert.

.dseg
ramCntDelayTimeW:  .Byte 1
ramCntDelayTime:  .Byte 1
ramCntDelayCnt:  .Byte 1

.org 0x1100
ramB_STREAM:    .Byte 2048

.cseg
.org 0

;--- hier nun die Einsprungadressen ---

.include "LayerA.asm"
.include "LayerB.asm"




in den Dateien LayerA und LayerB sind nun auch Variablen reserviert.
Nun werden die aber in den externen SRAM angehangen.

Wie bekomme ich diese nun noch in den internen SRAM?

Ich möchte das ramB_Stream einfach das einzigste ist was im ext. SRAM 
ist.

Für jede Idee dankbar, AVRli...
Gast #438786
Lesenswert?
• ▲
▼
Hallo,

sicherer ist vermutlich so:
.dseg

.org 0x1100
ramB_STREAM:    .Byte 2048

.org 0x0060 (oder wo der interne Ram beim M128 beginnt...)
ramCntDelayTimeW:  .Byte 1
ramCntDelayTime:  .Byte 1
ramCntDelayCnt:  .Byte 1

.cseg
.org 0

;--- hier nun die Einsprungadressen ---

.include "LayerA.asm"
.include "LayerB.asm"

Dann bleiben die restlichen Zuordnungen auch dann erhalten, wenn hier 
noch was verändert wird.

Zuweisungen solcher Art am sichersten nur an einer Stelle erledigen, 
sonst vergißt man schnell, bei Änderungen die anderen Dateien 
anzupassen.

Gruß aus Berlin
Michael
Gast #448492
Lesenswert?
• ▲
▼
Hi Leute,

sorry die slowli Antwort aber ich hatte mir immer vorgenommen zu 
antworten, jetzt aber.

Also es geht nun wie folgt...

.dseg
ramCntDelayTimeW:  .Byte 1
ramCntDelayTime:  .Byte 1
ramCntDelayCnt:  .Byte 1

.cseg
.org 0

;--- hier nun die Einsprungadressen ---

.include "LayerA.asm"
.include "LayerB.asm"

.dseg
.org 0x1100
ramB_STREAM:    .Byte 2048
.cseg


Funktioniert hier ganz ausgezeichnet. So kann man auch noch in den 
Include dateien seine Variablen definieren.

Aber Vorsicht! Nicht zuviel, alles unter 0x1100 ist Ok. Und schön an den 
StackPointer denken, das war mein Fehler. :)


Gruß AVRli

Antwort schreiben

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.

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.