MPLAB IDE, Absturz bei Simulation

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 06 11 2024  01:09:13      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : 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


Zurück zur Seite 1 im Unterforum          Vorheriges Thema Nächstes Thema 


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