Forum: PC Hard- und Software Software landet in einem fehlerhaften Zustand und kommt nicht mehr raus von diesem Zustand.


von Said (Gast)


Lesenswert?

folgende Anwendung habe ich:
- Messungen von unterschiedlichen Parameter (Strom, Spannung, ....) 
mithilfe einen PIC Mikrocontroller.
- SW ist so aufgebaut: Firmware + Visuall Studio 2008
- Kommunikationsart zwichen Firmaware und Visual Studio ist USB 
Schnittstelle (HID class.dll)
- Progrmmiersprache ist C++
--> Die Kommunikation mit der Firmware funktionniert  fast immer gut .
Die SW landet in der oben genannten Zustand sehr selten.
Ich kann das Problem nicht nachvollziehen warum oder wie ?
Ich habe folgende Versucht:
Die SW (in debug Modus) schritt für schritt (F10) zu debuggen und zu 
gucken was für Werte bekomme ich.
Es scheint alles Okay zu sein und die SW landet nicht mehr in 
fehlerhaften Zustand aber wenn ich direkt danach die SW normal starte 
(nicht in debug Modus)
Das Problem tritt wieder neue und ich muss das ganze neue anfangen (in 
debug Modus--> Problem tritt nicht mehr aber wieder direkt danach 
Problem ist wieder da).
Um das Problem zu lösen muss ich die SW beenden und wieder starten dann 
ist wieder alles gut.

Ich weiss dass ihr von der ferne mir gar nicht sagen können aber ich 
wollte fragen, ob ihr solche Fälle auch erlebt habt?

Danke in voraus

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Daß unterschiedliches Zeitverhalten bei einer Kommunikation (und 
generell in einem Programm) auch ein unterschiedliches Fehlerbild 
hervorrufen kann, ist nichts ungewöhnliches.

von Udo S. (urschmitt)


Lesenswert?

Kommunikation ist normalerweise Zustandsbasiert. (schreibst du ja auch 
in der Überschrift). Du hast also 2 Zustandsautomaten, einer auf der 
Client und einer auf der Serverseite.
Um den Fehler zu finden musst du herausfinden in welchem (falschen) 
Zustand sich Client und Server befinden wenn "nichts mehr geht"
Um das herauszufinden hat sich tracen als gute Möglichkeit erwiesen. 
Also das Mitschreiben in eine Datei was wann passiert, zumindest auf dem 
PC. Auf dem µC kann man evt. eine SD Karte zum tracen benutzen oder in 
einem primitiven Fall mehrere Ports, die man auf Ausgang schaltet und je 
nach Zustand eine eindeutige ID rausschreibt.
Viel Erfolg

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Said schrieb:
> --> Die Kommunikation mit der Firmware funktionniert  fast immer gut .

Entweder "fast" oder "gut", beides geht nicht.

Said schrieb:
> Um das Problem zu lösen muss ich die SW beenden und wieder starten dann
> ist wieder alles gut.

Welche?
Auf dem MC oder dem PC?

von Said (Gast)


Lesenswert?

Peter Dannegger schrieb:
> Welche?
Auf dem PC
> Auf dem MC oder dem PC?

Ich habe folgende Tolls "http://www.usblyzer.com/"; zu Hilfe genommen.

Zwei Sachen sind mir aufgefallen:
1) In Normalen Durchlauf (ohne Fehler)
Nach jede Kommando folgt eine Antwort
2) Problem ist aufgetreten:
Kommando werden mehrmals geschickt und die Antwort von jede Kommando 
folgt erst später ...

von Klaus (Gast)


Lesenswert?

Said schrieb:
> Zwei Sachen sind mir aufgefallen:
> 1) In Normalen Durchlauf (ohne Fehler)
> Nach jede Kommando folgt eine Antwort
> 2) Problem ist aufgetreten:
> Kommando werden mehrmals geschickt und die Antwort von jede Kommando
> folgt erst später ...

Der Detailgrad meiner Antwort entspricht Deiner Problembeschreibung:
1) Der zweite Fall ist typisch für einen Fehler.

Gruß Klaus

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.