AT89C52, Keil, 256 Byte RAM

Gast #68580
Lesenswert?

Hallo,
ich möchte einen AT89C52 programmieren.
Ich verwende einen Keil-Compiler/Linker (V3.52).
Der Prozessor hat laut Datenblatt 256x8-bit internal RAM. Mein Programm
benötigt mehr als 128 Byte RAM (aber weniger als 256 Byte RAM). Beim
Linken kommt eine Fehlermeldung (ERROR 107: ADDRESS SPACE OVERFLOW).
Der Stack wird auf
IDATA   007FH     0001H     UNIT         ?STACK
gelinkt.
Es sieht fuer mich sich aus, als ob der Linker nur von 128 Byte RAM
ausgeht.
Wie kann ich dem Linker sagen, dass der Prozessor 256 Byte RAM hat??

Gruß Heinz
#68581
Lesenswert?

Für die entsprechenden Linker-option solltest Du im Handbuch oder auf
der Keil Webseite fündig werden,

Allerdings sind die oberen 128Byte nur als idata zugreifbar.
D.h. Du must einige Variablen als idata deklarieren, vorzugsweise
Strukturen oder Arrays, die eh über Pointer zugegriffen werden.


Peter
Gast #68582
Lesenswert?

Auf der Keil-HP bin ich leider nicht fündig geworden, bzw. das was ich
da gefunden hab, hat nicht funktioniert... hab aber jetzt im Internet
irgendwo was gefunden mit "RAMSIZE(256)" und das hat dann getan...

Thanx für den TIP mit idata...

Heinz

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