Hallo,
Mein Wetterstationsprojekt ist inzwischen relativ groß geworden (Binäre Sketchgröße: 49.126 Bytes (von einem Maximum von 258.048 Bytes)
Auch S-Ram ist noch genau verfügbar, da ich immer wenn möglich das F Macro nutze.
Nun habe ich ab und an einen Compilerfehler den ich mir nicht erklären kann.
.....
if (page==1) client.println(F("<h1>Windstärke und Luftdruck Statistik</h1>"));
if (page==2) client.println(F("<h1>Windrichtung und Außentemperatur Statistik</h1>"));
.......
Das hier erzeugt diesen Fehler.
C:\Users\Mein\AppData\Local\Temp\build3835860156763741944.tmp\SD\utility\Sd2Card.cpp.o
C:\Users\Mein\AppData\Local\Temp\build3835860156763741944.tmp\SD\utility\SdFile.cpp.o
C:\Users\Mein\AppData\Local\Temp\build3835860156763741944.tmp\SD\utility\SdVolume.cpp.o
C:\Users\Mein\AppData\Local\Temp\build3835860156763741944.tmp\MemoryFree\MemoryFree.cpp.o
C:\Users\Mein\AppData\Local\Temp\build3835860156763741944.tmp\DCF77\DCF77.cpp.o
C:\Users\Mein\AppData\Local\Temp\build3835860156763741944.tmp\DCF77\Utils.cpp.o
C:\Users\Mein\AppData\Local\Temp\build3835860156763741944.tmp\Time\DateStrings.cpp.o
C:\Users\Mein\AppData\Local\Temp\build3835860156763741944.tmp\Time\Time.cpp.o
C:\Users\Mein\AppData\Local\Temp\build3835860156763741944.tmp\bmp085\BMP085.cpp.o
C:\Users\Mein\AppData\Local\Temp\build3835860156763741944.tmp\Wire\Wire.cpp.o
C:\Users\Mein\AppData\Local\Temp\build3835860156763741944.tmp\Wire\utility\twi.c.o
C:\Users\Mein\AppData\Local\Temp\build3835860156763741944.tmp\core.a -L
C:\Users\Mein\AppData\Local\Temp\build3835860156763741944.tmp -lm
d:/arduino-1.5.2/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr6/crtm2560.o: In function `__vector_default':
(.vectors+0xb8): relocation truncated to fit: R_AVR_13_PCREL against symbol `__vector_46' defined in .text section in d:/arduino-1.5.2/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr6/crtm2560.o
Hier wird abgebrochen mit der Meldung: Fehler beim Kompilieren.
Wenn ich den Code so ändere:
.....
if (page==1) client.println(F("<h1>Windstärke und Luftdruck Statistik</h1>"));
if (page==2) client.println("<h1>Windrichtung und Außentemperatur Statistik</h1>");
......
läuft es durch - Warum ???
Das Problem habe ich auch an anderen Stellen im Code, manchmal kann ich das F Macro benutzen und manchmal nicht. (Fehler beim Kompilieren.)
Arduino Version ist wie im Log zu sehen 1.0.5.
Wenn das ganze läuft sind um die 2100 Bytes frei (das lasse ich mir anzeigen)
Ich habe schon länger den Verdacht, das mit dem F-Macro was nicht stimmt ??