Forum: Compiler & IDEs Error in push_reload, at reload.c:1360


von Michael (Gast)


Lesenswert?

Hallo Leute,

Ich habe heute Windows 8.1 installiert und danach das neuste Atmel 
Studio 6.2 mit Service Pack 2 installiert. Seit dem habe ich beim 
Compilieren meines Codes die folgende Fehlermeldung:
1
in push_reload, at reload.c:1360

Vorher hat er den selben Code unter Windows 7 ebenfalls mit dem Atmel 
Studio 6.2 problemlos compiliert. Allerdings weiß ich nicht mehr welche 
AVR Toolchain hinter der anderen Version gesteckt hat. Wie gesagt am 
Code habe ich nichts geändert, allerdings habe ich herausgefunden dass 
es anscheinend an diesen Zeilen liegt:
1
sprintf(bufferoutput[2],"%05u",time);
2
sprintf(bufferoutput[3],"Zeit: %.2s,%.3s s",bufferoutput[2],bufferoutput[2]+2);
3
4
sprintf(bufferoutput[2],"%05u",time);
5
sprintf(bufferoutput[1],"%.2s,%.3s s",bufferoutput[2],bufferoutput[2]+2);

Sinn und Zweck der Übung sollte sein eine Zeit als Integerwert in eine 
lesbare Zeit von z.B.: "12,234 s" zu bekommen. Die beiden Segmente 
stehen an unterschiedlichen Positionen im Code. Wenn ich beide 
auskommentiere compiliert er ohne Probleme.

Ich habe auch bereits versucht das ganze so zu lösen:
1
sprintf(bufferoutput[3],"Zeit: %06.3f s",(float)time/1000);

Was ja eigentlich zur selben Ausgabe führen sollte wenn ich mich nicht 
irre. Komischerweise compiliert er hier nur dann, wenn ich eine der 
beiden auskommentiert lasse. Wenn ich jedeoch die nachfolgenden Zeilen:
1
strcpy(test1,"");
2
strcpy(test2,"  /  ");
3
strcpy(test3,"");
die zum rücksetzen der Strings dienen, auskommentiere, compiliert er 
auch mit beiden sprintf´s im Code. Ich bin leider mittlerweile etwas 
Ratlos, wodurch dieser seltsame Compilerfehler zustande kommt.

Ich habe dann auch schon versucht die Vorgängerversionen des Atmel 
Studio 6.2 zu installieren, allerdings nach wie vor der selbe Fehler.

Ein weiterer Versuch war, auf meinem Windows 7 Notebook ein älteres 
Atmel Studio 6.2 zu installieren doch auch dort der selbe Fehler.

Ich hoffe ihr habt eine Idee, woran das ganze liegen könnte.

Gruß
Michael

von Stefan (Gast)


Lesenswert?

Der Trick dabei ist, dass du auch die Toolchain deinstallieren musst und 
dann die von 6.1 installierst.

Es handelt sich bei deinem Fehler um einen Bug der in ser neuesten 
Version der Toolchain ist.

von Michael (Gast)


Lesenswert?

Habe den Fehler jetzt erst einmal behoben in dem ich die Betreffenden 
Zeilen auf folgendes geändert habe, was im Nachhinein betrachtet auch 
die elegantere Lösung ist:
1
sprintf(bufferoutput3,"Zeit: %02u,%03u s",time/1000,time%1000);

Außerdem habe ich den bufferoutput[4][20] array in 4 einzelne "Strings" 
zerlegt, damit der Fehler verschwindet.

Ich werde mal versuchen die Toolchain von der 6.1 Version anstelle der 
neuen zu installieren. Mal schauen ob die Arrays dann wieder gehen ;-).

Danke schonmal.

Gruß
Michael

von Michael (Gast)


Lesenswert?

Hallo nochmal,

Für alle die das Problem auch noch haben sollten, der Tipp von Stefan 
funktioniert. Habe das neuste Atmel Studio 6.2 installiert, die 
Toolchains deinstalliert, das letzte Studio 6.1 drüber installiert und 
dann ohne Deinstallation der Toolchains das Studio 6.1 wieder 
deinstalliert. Danach funzt alles wieder einwandfrei und er mag auch 
mein Array wieder :-).

Gruß
Michael

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Michael schrieb:
> "anscheinend an diesen Zeilen"

...ist kein compilierbarer C-Code.  Da auch weder Compiler-Version noch 
Optionen genannt sind, kann man im Kaffeesatz lesen.  ...mal wieder...

Z.B. PR64452, gefixt in 4.8.5 (GCC SVN r220849), 4.9.3 (GCC SVN r220848) 
und 5.0 (GCC SVN r220847).

: Bearbeitet durch User
von Patrick D. (oldbug) Benutzerseite


Lesenswert?

Johann L. schrieb:
> ...ist kein compilierbarer C-Code

und die Fehlermeldung ist nichtmal Vollständig:

Michael schrieb:
> beim Compilieren meines Codes die folgende Fehlermeldung:in push_reload,
> at reload.c:1360

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.