Forum: Mikrocontroller und Digitale Elektronik AT89C52, Keil, 256 Byte RAM


von Heinz (Gast)


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

von Peter D. (peda)


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

von Heinz (Gast)


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

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
Noch kein Account? Hier anmelden.