www.mikrocontroller.net

Forum: Compiler & IDEs Problem mit uVision3 und AT89C5131(Speicherverwaltung?)


Autor: Joban (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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:
char xdata mein_array[500];

Übrigens ist der AT89C5131 kein Controller, der was mit GCC zu tun hat!

Autor: Joban (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.