Hallo, ich hab ein merkwürdiges Phänomen: beim Einschalten der Schaltung braucht die firmware eine längere Zeit (nicht gestoppt: Wartezeit ca. 2 Minuten) bis der Controller anläuft bzw. der Programmablauf beginnt. Dann geht alles ganz normal, fehlerfrei. Das ist mir jetzt schon ein paar mal in unterschiedlichen Schaltungen "passiert". Und zwar nach dem Compilieren mit Codeänderungen/Ergänzungen/Erweiterungen. Wobei der entsp. Code keine Fehler hatte und auch nichts mit der Initialisierung bei firmwarestart zu tun hat. Wenn ich jetzt weiteren Code dazupacke, geht wieder alles normal so wie es sein soll. Meine Vermutung ist eher ein Compiler- oder Linkerfehler - ich nutze aktuell gcc version 4.3.4 (Debian 4.3.4-5) - wobei ich das in meinem Programmiererleben schon immer wieder mal erlebt habe, mit unterschiedlichen gcc-Versionen. Zur Info: Device: atmega128, Program: 83088 bytes (63.4% Full) (.text + .data + .bootloader), Data: 2521 bytes (61.5% Full) (.data + .bss + .noinit), EEPROM: 3355 bytes (81.9% Full)(.eeprom) Der uC hängt an einem Quarzoszi, die Fuses stimmen und wurde im Zeitraum der Entwicklung nie verändert, ein Neusetzen der Fuses bewirkt keine Änderung. Ein Bootloader ist nicht installiert und auch nicht aktiviert. Ich weiß, meine Beschreibung ist abstrakt und eher etwas für Glaskugelkommentare - aber das hilft leider nichts. Meine Codegröße sind über 10k Sources, die kann und werde ich nicht posten. Ich suche jetzt weniger den Fehler im meinem Code, den ich natürlich nicht ausschließe, aber für unwahrscheinlich halte sondern eher Kommentare wie, "ja dieses Phänomen kenn ich" - "es könnte das und das sein" - "kenn ich, das xxx ist die Ursache". Meine Meinung: Wer so ein Phänomen noch nicht erlebt hat, kann auch nur rumrätseln. Hab ich schon zur genüge. Die einzige Ursache, die ich eben "herausgefunden" habe ist: eine Mengen-mäßige Verringerung des Codes oder eben eine Erweiterung, lassen dieses Fehlverhalten wieder verschwinden. Eine Fehlerursache in unterschiedlichen Codes habe ich bisher nicht gefunden. Sowas wie Stack- oder puffer-Overflow halte ich auch für sehr unwahrscheinlich. Die Veränderungen von Codemenge (ohne die globalen Variablen zu ändern) ändern eben diese Mysterium.
> Passen die Anschwing-Cs zum Quarz? s.o. wird kein Quarz benutzt, sondern ein Quarzoszi (http://de.wikipedia.org/wiki/Quarzoszillator), Takt immer vorhanden!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.