Forum: Compiler & IDEs Main-Schleife wird nicht mehr durchlaufen.


von Johannes R. (joohaannes)


Lesenswert?

Hallo!

Was kann es denn für Gründe haben, wenn die Hauptschleife im Programm 
nicht mehr ausgeführt wird?
Bei mir ist es so, dass sie ein paar Minuten läuft und dann wird die 
while-Schleife nicht mehr ausgeführt ... ich kann mir das zZ nicht 
erklären ...

Danke im voraus!
Johannes

von Jonas M. (jonen)


Lesenswert?

Vielleicht tritt dann ein Interrupt auf (z.B. Timer Overflow) aus dem 
nicht zurückgekehrt wird. Schalte mal die Interrupts aus zum testen.
Greez

von Detlev T. (detlevt)


Lesenswert?

Hardwareprobleme, zum Beispiel eine wackelige Stromversorgung?

von Johnny (Gast)


Lesenswert?

Vielleicht hängst Du irgendwo in einer Schleife (z.B. while) fest, wo 
das Abbruchkriterium niemals eintrifft. Oder der Controller stürzt wegen 
einem Sprung ins Nirvana völlig ab (z.B. direkter Sprung auf Adresse, wo 
sich kein ausführbarer Code befindet). Kann auch sein, dass Du (z.B. mit 
einem falschen Pointer) auf eine Adresse zugreifst, die nicht vorhanden 
ist, oder auf die Du kein Zugriff hast und dann ein Exception IRQ oder 
sowas ausgelöst wird, der nicht behandelt ist.
Gibt sicher noch mehr Ursachen und könnte alles mögliche sein.

Am besten guckst Du mal im abgestürzten Zustand mit dem Debugger, was 
der Controller genau treibt.

von Johannes R. (joohaannes)


Lesenswert?

Danke für die Antworten!
Ich glaube es ist ein Speicherproblem, kann das sein? Ich habe jetzt ein 
Array verkleinert ... und bisher läufts wie es soll...

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Wenn mehr RAM gebraucht wird als da ist, wächst möglicherweise der Stack 
in den Bereich der statischen Daten und er überschreibt diese bzw. 
Stackinhalte werden überschrieben (Variablenwerte ändern sich plötzlich, 
Rücksprungadressen aus Funcs, ISRs stimmen nicht mehr, Register, PSW 
werden nach ISR falsch restauriert, etc).

von Klaus (Gast)


Lesenswert?

Bin ich blind, oder disskutiert ihr hier wieder ohne jegliche Kenntnisse 
über das Problem? Ich hab keinen Code gesehen?!?


@joohaannes: Kommt du auch mit dem Fahrrad zur Autowerkstatt und sagt: 
mein Auto ist kaputt, können sie mir sagen was kaputt ist? Da fehlt was 
um die Frage zu beantworten, oder? ;)

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Klaus wrote:
> Bin ich blind, oder disskutiert ihr hier wieder ohne jegliche Kenntnisse
> über das Problem? Ich hab keinen Code gesehen?!?

Du must nur intensiv in die Kristallkugel blicken: Der Fehler ist in 
Zeile 41.

von Stefan E. (sternst)


Lesenswert?

Deine Kugel muss einen Sprung haben.
Er ist in Zeile 42.

von Johnny (Gast)


Lesenswert?

Das temporäre Carry-Bit war nicht gesetzt, darum hat der Watchdog einen 
Haufen hingesch...

von Random .. (thorstendb) Benutzerseite


Lesenswert?

Hi,

lass ma ein wenig Code sehen.
Um was für einen Controller handelt es sich?

Bei den Luminary-Cortexen z.B. landet man gerne mal sehr schnell im 
Abort-Handler. Ist generell ne gute Idee, dass man ne LED, UART oder was 
auch immer hernimmt, um mit dem jeweiligen Abort-Handler das Auftreten 
eines solchen anzuzeigen.

VG,
/th.

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
Noch kein Account? Hier anmelden.