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
Vielleicht tritt dann ein Interrupt auf (z.B. Timer Overflow) aus dem nicht zurückgekehrt wird. Schalte mal die Interrupts aus zum testen. Greez
Hardwareprobleme, zum Beispiel eine wackelige Stromversorgung?
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.
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...
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).
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? ;)
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.
Deine Kugel muss einen Sprung haben. Er ist in Zeile 42.
Das temporäre Carry-Bit war nicht gesetzt, darum hat der Watchdog einen Haufen hingesch...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.