mikrocontroller.net

Forum: Compiler & IDEs Unerklärliche Startverzögerung ATmega128


Autor: Stefan V. (zeh)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Reset (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie ist denn der Reset Eingang beschaltet?

Autor: Stefan V. (zeh)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmmm .. Pullup 100k gegen VCC und 100nF gegen Masse.

Autor: Guest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Passen die Anschwing-Cs zum Quarz?

Autor: Stefan V. (zeh)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Passen die Anschwing-Cs zum Quarz?
s.o. wird kein Quarz benutzt, sondern ein Quarzoszi 
(http://de.wikipedia.org/wiki/Quarzoszillator), Takt immer vorhanden!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.