AVR-GCC: Array wird nicht initialisiert

Gast #4263444
Lesenswert?

Hi,

ich nutze in meinem Programm eine Tabelle, welche in einem Headerfile 
protocol.h initialisiert wird:
1
PROGMEM const unsigned short speedMap[1974]={1,2,2,3,3,3,...};

protocol.h wird natürlich auch in meiner main.c includiert. Wenn ich den 
Krempel jetzt aber im AVR-studio-Simulator laufen lasse, dann ist das 
Array komplett leer, sprich mit 0 initialisiert.

Woran kann das liegen? Wo bleiben meine Tabellenwerte?

Danke!
Moderator Persönliche Seite #4263450
Lesenswert?

Sortland schrieb:
>
1
PROGMEM const unsigned short speedMap[1974]={1,2,2,3,3,3,...};

Syntax error.

> protocol.h wird natürlich auch in meiner main.c includiert.

Nur dort?

> Wenn ich den
> Krempel jetzt aber im AVR-studio-Simulator laufen lasse, dann ist das
> Array komplett leer, sprich mit 0 initialisiert.

Leider sieht man hier nur eine kaputte Zeile, nicht den anderen 
"Krempel".

Erstelle bitte ein Minimalbeispiel, um das Problem zu reproduzieren.

Compiler-Version?
Moderator Persönliche Seite #4264959
Lesenswert?

Stefan K. schrieb:
> Wenn das .h File in mehreren Quellen eingebunden wird, wird speedMap[]
> entsprechend oft angelegt.

Nicht, solange nicht auch noch "static" davor steht.

Sinnvoll ist es trotzdem nicht, das im Headerfile anlegen zu wollen.

Ansonsten würde ich Johanns Rat folgen und das auf aktuellen Compilern
auf __flash umstellen.  Der PROGMEM-Kram war ein Notnagel, um die Zeit
zu überbrücken, bis Johann eine richtige Implementierung im Compiler
realisiert hat. :)

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