extended IO Atmega48

OP #3091450
Lesenswert?

Hallo,
ich versuche jetzt schon eine ganze Zeit herauszufinden, warum meine 
Zuweisung für zwei Variablen im C-Code mal läuft und an anderer Stelle 
nicht. Beide Variablen werden wie folgt initialisiert:

unsigned char cmd_00[6] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06};
unsigned char cmd_01[6] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06};

Der Unterschied besteht scheinbar in den vom Compiler für die Variablen 
vorgesehenen Adressen:

cmd00 -> 0x02E5 [SRAM], Data
cmd01 -> 0x00E1 [SRAM], Extended I/O

Wenn der Code im AVR-Studio Simulator2 oder auf dem Target (Atmega48) 
ausgeführt wird lässt sich im zweiten Fall keine Änderung der 
betreffenden Speicherstelle beobachten. Mit dem alten Simulator 
funktioniert es aber. Irgendwelche Ideen was ich da falsch mache?
OP #3091530
Lesenswert?

Danke für deinen Tip lippy.
Hat mir aber nicht geholfen.
Ich habe versucht mein Problem zu reduzieren und wollte mal hören, ob 
vielleicht jemandem was dazu einfällt. Ich kann aber gerne nochmal das 
Disassembly der Zuweisungen mit den initialen Werten posten, wenn du 
dann erst deine volle Kompetenz enfalten kannst.
Gast #3091541
Lesenswert?

>warum meine Zuweisung für zwei Variablen im C-Code mal läuft und an anderer 
>Stelle nicht.

Und warum tust du uns diese Zuweisungen vorenthalten? Wir sollen doch 
sagen, warums nicht geht...


>Ich kann aber gerne nochmal das  Disassembly der Zuweisungen

Nein. Den originalen Code.
OP #3091598
Lesenswert?

Ich weiss nicht, ob es hilft, wenn ich den code soweit reduziere dass 
man es hier darstellen kann und ob dann das Problem noch besteht.
Der Code ist ursprünglich auch garnicht von mir. Ich versuche eine 
SD-karte zu lesen und benutze dabei die Sourcen von Ulrich Radig 
("mmc.c").

Ich werde erstmal mal nachstellen, ob ich nur mit dem Disassembly der 
beiden Zuweisungen und entsprechend initialisierten Registern das 
gleiche Problem bekomme ...

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