Maximale Arraygröße GCC + MSP430F169

Gast #599537
Lesenswert?

Hallo,
ich benutze den GCC Compiler und einen MSP430F169
ich habe mir ein Array angelegt:

int test[2000];

nun bekomme ich die Fehlermeldung im Dateianhang.
Es scheint ja zu groß zu sein. Aber ich habe noch über 45kB frei. Wo 
liegt mein Denkfehler? Oder liegt das am Compiler?

Danke Euch.
Angehängte Dateien:
Gast #599548
Lesenswert?

@OP:
Tja, scheinbar hast du nicht so viel Platz für Variablen, da der MSP 
eine von-Neumann Architektur hat (der ganze Speicher im selben 
Addressraum) sollte ein "const int test[2000];" das Array in den flash 
verschieben -- dann kann man das aber nicht mehr so ohne weiteres 
ändern.

hth. Jörg
Gast #599552
Lesenswert?

Entschuldigung wegen dem Doppelpost, aber der Titel ist irreführend.
Der GCC hat mit dem Limit in diesem Fall nichts zu tun - das GCC-Limit 
sollte  dem Maximum eines "signed int" entsprechen d.h. 32767 Elemente 
beim AVR, beim MSP wahrscheinlich auch.

gruß ~Jörg
#600713
Lesenswert?

Wenn du mehr als die 256 Byte des Info-memory brauchst, musst du dem GCC 
dies aber mitteilen, indem du eine eigene Section im Linker-File dafür 
erstellst und im Quellcode dann angibst, dass das Array in eben diese 
Section muss. Sonst kanns passieren, dass du Programmcode oder andere 
Konstanten löscht, der FLASH kann nämlich immer nur in Sektoren gelöscht 
werden.

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