Problem mit uVision3 und AT89C5131(Speicherverwaltung?)

Gast #1145210
Lesenswert?

Hallo,

Ich arbeite jetzt schon seit anfang dieses Jahres mit oben genannten 
Dingen. Keil funktioniert einwandfrei.

Der Atmel uC hat unter anderem 1250 Byte Ram. Wenn ich mit Keil 
Compiliere zeigt er mir ja immer den aktuellen Status an wieviel 
Speicher belegt ist siehe hier:

Program Size: data=99.3 xdata=0 code=3047

Das bedeutet eigentlich das er knapp 100 Byte im Ram belegt hat und 3000 
Byte im Codespeicher.

Sobald aber der Ram-Speicher über ca. 110 Byte drüber geht bringt er mir 
folgende Fehlermeldung:


*** ERROR L107: ADDRESS SPACE OVERFLOW
    SPACE:   DATA
    SEGMENT: ?DT?TEST
    LENGTH:  003CH
*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT
    SYMBOL:  CMD_BEFEHL
    SEGMENT: ?DT?TEST
Program Size: data=139.3 xdata=0 code=3047


Das ist der gleiche Quelltext wie oben, nur das ich ein Array etwas 
vergrößert habe und er somit mehr Speicherplatz reserviert. Das Programm 
hat vorher einwandfrei funktioniert.

Vielleicht hat schon jemand ein ähnliches Problem gehabt oder weis 
eventuell woran es liegen könnte?

Bin ziemlich ratlos.

Grüße
Joban
Gast #1145876
Lesenswert?

>Der Atmel uC hat unter anderem 1250 Byte Ram. Wenn ich mit Keil
>Compiliere zeigt er mir ja immer den aktuellen Status an wieviel
>Speicher belegt ist siehe hier:

>Program Size: data=99.3 xdata=0 code=3047

Dein DATA Segement (interner RAM) ist voll. Eventuell geht der Linker 
von einen Standard 8051er aus, der nur 128Byte internen RAM hat.

Kuck mal, ob bei den Target-Optionen, bei BL51 Locate im Linker control 
String folgendes steht: RAMSIZE(256)

Hast Du den richtigen Controller eingestellt?

Wenn Du die 1250Byte Ram nutzen willst, musst Du Dein Array in den XDATA 
legen. z.B. mit:
1
char xdata mein_array[500];

Übrigens ist der AT89C5131 kein Controller, der was mit GCC zu tun hat!
Gast #1146532
Lesenswert?

aha danke :-)

hab eben auch gesehen das man das im keil einstellen kann das er das in 
den X-data bereich legt.

Hab mir gedacht in GCC kommt alles rein was mit C-Compilern zu tun hat. 
Hab mich da wohl geirrt :-)

Danke nochmal....

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