Unerklärliche Startverzögerung ATmega128

OP #1904229
Lesenswert?
• ▲
▼
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.