Zugriff auf Speicher über eingestelltem Maximum

Gast #238744
Lesenswert?
• ▲
▼
Hallo,

Ich habe hier einen ATMega128 und ganz brav an das externe
RAM-Interface 32k SRAM drangehängt. Nun  möchte ich aber mit Adressen
>32k "etwas anderes" (das ebenfalls am Adress- und Datenbus hängt,
aber KEIN RAM ist aber wie ein solches angesprochen werden will)
adressieren.

Frage: Wenn ich dem Compiler im Makefile gesagt habe, dass 32k SRAM
dran sind, was macht er dann bei Zugriffen auf Adressen >32k? Ich würde
mir wünschen, dass er 'ganz normal' die Adresse ausgibt und einen
'normalen'  Speicherzugriff versucht. Tut er das?

TIA,

Robert
Gast #238746
Lesenswert?
• ▲
▼
Hallo,

Nein, die Dekodierung ist hier nicht das Problem! Ich will nur wissen,
was der Compiler anstellt, wenn man in einen Speicherbereich zugreift,
der laut Makefile "nicht existent" (>32k) ist. Mappt der das dann
wieder ab 0 oder versucht er wirklich einen Zugriff auf diese Adresse?

mfg,

Robert
#238748
Lesenswert?
• ▲
▼
Nein, was Du dem Linker sagst, ist nur wichtig für seine
Variablenplazierung.

Wenn Du über eine Adresse (Pointer) irgendwo hin zugreifst, macht er
das auch.

Deshalb ist C ja so beliebt, weil man damit machen kann, was man will.
Es bevormundet einen nicht.

C macht genau das, was man hin schreibt, ganz egal, ob man weiß, was
man tut oder nicht.


#define my_io_device (*((unsigned char *)((void *)0x1234)))

my_io_device = 0x01;

i = my_io_device;


Peter

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