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