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...
vllt mit .org in der include-asm datei wieder in den internen bereich mappen? gruß
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
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
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.