Forum: Mikrocontroller und Digitale Elektronik C30, zweidimensionales Array


von Holgers (Gast)


Lesenswert?

Hallo,

ich würde gerne ein zweidimensionales Array mit 2048 Bytes anlegen.
Wenn ich es einfach so mache geht es nicht:

int logo[8][128] = {........};

Diese Fehlermeldung erhalte ich:

..\src\obj\main_projekt.o: Link Error: Could not allocate section 
.ndata, size = 2048 bytes, attributes = data near
 Link Error: Could not allocate data memory

Vlt. weiß jemand weiter!

Gruß Holgers

von Ralf (Gast)


Lesenswert?

Prozessor/Controller? Evtl. Schaltplan?
1
int logo[8][128] = {........};
Hast du nur die beiden geschweiften Klammern oder im Feld auch welche?
Hau mal den ganzen Code hier rein (wenn es viel Code ist, mach's als 
Anhang), so wie oben beschrieben kann man sich das schlecht vorstellen, 
wo genau jetzt der Fehler liegt...

Ralf

von Holgers (Gast)


Angehängte Dateien:

Lesenswert?

So ich habe mal den Code rangehängt,

Gruß Holgers

von Laszlo H. (mobius)


Lesenswert?

Hm, welches Memory Model fährst du? Weil wenn small (siehe [1]), passt 
es scheinbar nicht in den RAM-Speicher < 0x2000.Versuch mal die Lösung 
von [1], also die Variable mit __attribute__((far)) versehen.

BTW, du willst 1024 Byte in einen µC mit 2048 Byte RAM laden? Ganz 
sicher? Du brauchst auch noch so etwas wie einen Stack ^^. Ich kenn den 
C30 nicht (bin mehr im AVR Lager beheimatet), aber versuch mal das Array 
im Flash zu platzieren.

lg
Mobius

[1] http://www.microchip.com/forums/tm.aspx?m=138542

von (prx) A. K. (prx)


Lesenswert?

Holgers schrieb:

> int logo[8][128] = {........};

2KB Daten und ein Controller mit 2KB RAM. Das wird nix.

von holger (Gast)


Lesenswert?

>So ich habe mal den Code rangehängt,

Keiner deiner Werte im Array ist int.
Versuchs mal mit unsigned char.
Und dann vieleicht noch mit const rom unsigned char,
da logo ja wohl kaum im RAM liegen soll.
So gehts jedenfalls beim C18.

von Holgers (Gast)


Lesenswert?

Job danke für die Antworte habe es jetzt hinbekommen, ich programmiere 
nicht allzu oft deswegegen meine Planlosigkeit.^^

Gruß Holgers

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.