www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik C30, zweidimensionales Array


Autor: Holgers (Gast)
Datum:

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

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Prozessor/Controller? Evtl. Schaltplan?
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

Autor: Holgers (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So ich habe mal den Code rangehängt,

Gruß Holgers

Autor: Laszlo H. (mobius)
Datum:

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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Holgers schrieb:

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

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

Autor: holger (Gast)
Datum:

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

Autor: Holgers (Gast)
Datum:

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

Gruß Holgers

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.