Forum: Mikrocontroller und Digitale Elektronik AVR Studio 5 Projekt lässt sich nicht in Studio 6 kompilieren


von technikus (Gast)


Lesenswert?

Hallo,

da ich meinen Rechner von Grund auf neu aufsetzen musste, habe ich, 
anstatt vorher AVR Studio 5, jetzt die 6er Version installiert

Jetzt lässt sich mein letztes Projekt nicht mehr fehlerfrei kompilieren.

Hier mal der Fehler:
Error  1  variable 'strarray1' must be const in order to be put into 
read-only section by means of '__attribute__((progmem))'


1
//Einzelne Strings im Flash ablegen
2
const char str1[] PROGMEM = "Text 1";
3
const char str2[] PROGMEM = "Text 2";
4
const char str3[] PROGMEM = "Text 3";
5
6
7
//Pointer von String Arrays
8
const char *strarray1[] PROGMEM = {
9
  str1,
10
  str2,
11
  str3
12
  
13
};

Kann mir jemand erklären warum das Projekt nun falsch sein soll?


Danke!
Technikus

von Georg G. (df2au)


Lesenswert?

Compiler Macke?
Das Programm ist imho fehlerfrei, selbst für pingelige Gemüter.

von Walter T. (nicolas)


Lesenswert?

1
const char PROGMEM str1[]

Was das mit der AVRStudio-Version zu tun haben soll weiß ich allerdings 
auch nicht...

Viele Grüße
Nicolas

von technikus (Gast)


Lesenswert?

Dann eben mit der Toolchain

von technikus (Gast)


Lesenswert?

So wird es gefressen:
1
//Einzelne Strings im Flash ablegen
2
const char str1[] PROGMEM = "Text 1";
3
const char str2[] PROGMEM = "Text 2";
4
const char str3[] PROGMEM = "Text 3";
5
6
7
//Pointer von String Arrays
8
const char *strarray1[] = {
9
  str1,
10
  str2,
11
  str3
12
  
13
};


????

von Karl H. (kbuchegg)


Lesenswert?

1
const char * const strarray1[] PROGMEM = {
2
  str1,
3
  str2,
4
  str3
5
  
6
};

und ja. Der Compiler hat recht damit.
Die Pointer zeigen auf const char. Die Pointer selbst sind aber, da im 
FLash beheimatet, ebenfalls als const anzusehen.

von technikus (Gast)


Lesenswert?

O.K. verstanden!

Danke

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.