MPLAB IDE, Absturz bei Simulation Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte
Autor |
MPLAB IDE, Absturz bei Simulation Suche nach: ide (652) |
|
|
|
|
BID = 509996
attersee Stammposter
Beiträge: 448 Wohnort: Wien
|
|
Kann mir bitte jemand sagen, wie stabil die Simulation mit MPLAB IDE wirklich ist. Ich benutze die neueste Version 8.02. Es handelt sich um ein Programm für einen PIC16F876A mit 548 LOC, geschrieben in Assembler. Ich lese nur Daten über Ports ein, verarbeite sie, generiere Steuersignale und kommuniziere mit einem LCD Display. Timer etc. des PIC bleiben also unbenutzt.
Nun das Problem:
(a) Setze ich einen Breakpoint (Anfang der Main_Loop) und starte dort die Simulation, so werden alle Berechnungen korrekt durchgeführt, einschließlich der Daten von/zu den Ports. Sooft ich den Startpfeil auch drücke, - nach jedem manuell ausgelösten Durchlauf stimmt das Ergebnis, auch hundert mal nacheinander.
(b) Nehme ich den Breakpoint weg und starte, so hängt sich MPLAB IDE nach einigen Sekunden Laufzeit fatal auf (‚das Programm reagiert nicht’) und muss über das Betriebssystem (XP Home, SP2) beendet werden. Damit habe ich leider keinerlei Information, an welcher Stelle der Hänger passiert. Erwähnt sei, dass eine frühere (allerdings unbrauchbare) Version beliebig lange vor sich dahinsimuliert hat.
Ich wende mich an Personen, die mit der MPLAB Simulation Erfahrung haben und mir sagen können, ob man in so einem Fall davon ausgehen kann, dass die Ursache nicht im Programm, sondern im Simulator steckt. Liegt der Verdacht aber bei meinem Code, so ersuche ich um Anregungen für eine Fehlersuche.
Für Hinweise dankbar ist,
Johann
|
|
BID = 510146
attersee Stammposter
Beiträge: 448 Wohnort: Wien
|
|
Ich bin einen Schritt weiter. Es deutet alles darauf hin, dass sich die Simulation effektiv aufhängt, wenn das Programm in einer kleinen inneren Schleife endlos im Kreis läuft. Aus irgendeinem Grund scheint die Stimulus-Funktion des Simulators unter bestimmten – mir noch nicht bekannten – Bedingungen, nicht so zu funktionieren, wie man das erwartet. Mit dem Stimulus setze ich ein Bit, das zum Verlassen dieser inneren Schleife gesetzt sein muss. Es mag natürlich auch sein, dass ich eine der Regeln (wechselseitige Beeinflussung von Stimuli auf den gesamten Port bzw. auf ein einzelnes Bit?) übersehen oder falsch angewandt habe. Faktum ist, dass der Stimulus (mit Breakpoint überprüft) bei jedem manuell ausgelösten Durchlauf das Richtige macht.
Zum obigen Schluss komme ich, weil ich in die verdächtige Schleife einen Zähler eingebaut habe und diese ab einer fixen Durchlaufzahl zwangsweise verlasse. Mit diesem Zwangsausstieg läuft die Simulation ohne Unterlass bis zum St. Nimmerleinstag.
Was mich halt wundert, ist, dass sich die Simulation wegen einer kleinen, inneren Endlosschleife gleich aufhängt. Man dürfte wohl erwarten, dass sie einfach in der Schleife vor sich dahinsimuliert. Aber vielleicht generiere ich doch irgendwo einen fatalen Overflow.
Summa summarum habe ich den Eindruck, dass ich bei der Anwendung des Stimulus noch etwas nicht richtig mache. Das werde ich mir auf jeden Fall genauer ansehen. Mit dem Ding muss man einfach umgehen können, denn es ist nicht unnützlich.
Anregungen sind willkommen. Grüße,
Johann
|
|
BID = 513971
attersee Stammposter
Beiträge: 448 Wohnort: Wien
|
Weil es sich so gehört, gebe ich hiermit die abschließende Information. Es handelte sich tatsächlich um ein Problem des Simulators.
Wenn ich die Hardware gezielt in die im Simulator erzeugte Endlosschleife sende, indem ich mitten im Programm das Busy Signal des LCD Display nicht mehr nach 0 gehen lasse, hängt sich das Programm nicht auf, sondern bleibt beliebig lang in der Schleife. Sobald Busy wieder nach 0 geht, läuft es geordnet weiter.
Vielleicht hilft diese Information jemandem, bei dem sich die Simulation ebenfalls aufhängt.
Grüße, Johann
|
|
Zum Ersatzteileshop
Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum
Datenschutz
Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland
gerechnet auf die letzten 30 Tage haben wir 24 Beiträge im Durchschnitt pro Tag heute wurden bisher 1 Beiträge verfasst © x sparkkelsputz Besucher : 182289311 Heute : 134 Gestern : 4667 Online : 570 6.11.2024 1:09 1 Besucher in den letzten 60 Sekunden alle 60.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
|
xcvb
ycvb
0.0525379180908
|