Hallo zusammen,
so eine VM ist eine wirklich tolle Sache.
Ich benutze die VM als Entwicklungsplattform für Applikationen.
Nun ist mir schon desöfteren aufgefallen, dass die Systemzeit von VM und Wirtssystem auseinander läuft.
Gerade arbeite ich an einem Tool, welches mit einem Sensor über die serielle Schnittstelle kommuniziert.
Hier treten ab und zu Kommunikationsprobleme auf, d. h. der Sensor antwortet nicht auf einen gesendeten Befehl.
Laut meinem Port Monitor wurde der Befehl abgesetzt, der Empfangsbuffer bleibt jedoch leer ???
Dieser Fehler tritt sporadisch an unterschiedlichen Stellen im Programmablauf auf.
Vielleicht weiß jemand Rat.
Kann es sein dass die VM Probleme hat die Daten durchzureichen?
Könnte es ein Timing-Problem sein (Systemzeit!!)?
Schon mal Danke
Gruß Joe
Die Foren-SW läuft ohne erkennbare Probleme. Sollte doch etwas nicht funktionieren, bitte gerne hier jederzeit melden und wir kümmern uns zeitnah darum. Danke!
serielle Schnittstelle Timing
-
- Member
- Beiträge: 5
- Registriert: 20.05.2006, 14:27
-
- Member
- Beiträge: 5
- Registriert: 20.05.2006, 14:27
Hallo, hier meine vmx.
{
config.version = "7"
virtualHW.version = "3"
scsi0.present = "TRUE"
memsize = "152"
ide0:0.present = "TRUE"
ide0:0.fileName = "Windows XP Professional.vmdk"
ide1:0.present = "TRUE"
ide1:0.fileName = "auto detect"
ide1:0.deviceType = "cdrom-raw"
floppy0.fileName = "A:"
Ethernet0.present = "TRUE"
sound.present = "TRUE"
sound.fileName = "-1"
displayName = "Windows XP Professional"
guestOS = "winXPPro"
priority.grabbed = "normal"
priority.ungrabbed = "normal"
ide1:0.startConnected = "TRUE"
Ethernet0.addressType = "generated"
uuid.location = "56 4d 86 a7 7d 51 02 29-bb 02 e4 d2 74 af 24 30"
uuid.bios = "56 4d 86 a7 7d 51 02 29-bb 02 e4 d2 74 af 24 30"
sharedFolder.maxNum = "1"
ethernet0.generatedAddress = "00:0c:29:af:24:30"
ethernet0.generatedAddressOffset = "0"
tools.syncTime = "FALSE"
sharedFolder0.present = "TRUE"
sharedFolder0.enabled = "TRUE"
sharedFolder0.readAccess = "TRUE"
sharedFolder0.writeAccess = "TRUE"
sharedFolder0.hostPath = "C:\Dokumente und Einstellungen\SMayer\Eigene Dateien\My Virtual Machines\SheredFolderCopyshop"
sharedFolder0.guestName = "TestShared"
sharedFolder0.expiration = "never"
sound.virtualDev = "es1371"
serial0.present = "TRUE"
serial0.fileName = "COM1"
}
Bei der Einstellung der seriellen Schnittstelle gibt es einen I/O mode.
diese Einstellung ist bei mir deaktiviert.
{
Yield CPU on poll
(Allow the guest operating system to use this serial port in polled mode(as opposed to interrupt mode)
}
In meiner Applikation frage ich im "polling mode" den Empfangspuffer ab.
Sendet meine Applikation einen Befehl an den Sensor, wartet diese anschließend (polling) eine gewisse Zeit auf Antwort. Nach einer bestimmten Zeit (Time Out) wir im Programm fortgefahren.
Könnt das die Ursache sein??
Gruß Joe
{
config.version = "7"
virtualHW.version = "3"
scsi0.present = "TRUE"
memsize = "152"
ide0:0.present = "TRUE"
ide0:0.fileName = "Windows XP Professional.vmdk"
ide1:0.present = "TRUE"
ide1:0.fileName = "auto detect"
ide1:0.deviceType = "cdrom-raw"
floppy0.fileName = "A:"
Ethernet0.present = "TRUE"
sound.present = "TRUE"
sound.fileName = "-1"
displayName = "Windows XP Professional"
guestOS = "winXPPro"
priority.grabbed = "normal"
priority.ungrabbed = "normal"
ide1:0.startConnected = "TRUE"
Ethernet0.addressType = "generated"
uuid.location = "56 4d 86 a7 7d 51 02 29-bb 02 e4 d2 74 af 24 30"
uuid.bios = "56 4d 86 a7 7d 51 02 29-bb 02 e4 d2 74 af 24 30"
sharedFolder.maxNum = "1"
ethernet0.generatedAddress = "00:0c:29:af:24:30"
ethernet0.generatedAddressOffset = "0"
tools.syncTime = "FALSE"
sharedFolder0.present = "TRUE"
sharedFolder0.enabled = "TRUE"
sharedFolder0.readAccess = "TRUE"
sharedFolder0.writeAccess = "TRUE"
sharedFolder0.hostPath = "C:\Dokumente und Einstellungen\SMayer\Eigene Dateien\My Virtual Machines\SheredFolderCopyshop"
sharedFolder0.guestName = "TestShared"
sharedFolder0.expiration = "never"
sound.virtualDev = "es1371"
serial0.present = "TRUE"
serial0.fileName = "COM1"
}
Bei der Einstellung der seriellen Schnittstelle gibt es einen I/O mode.
diese Einstellung ist bei mir deaktiviert.
{
Yield CPU on poll
(Allow the guest operating system to use this serial port in polled mode(as opposed to interrupt mode)
}
In meiner Applikation frage ich im "polling mode" den Empfangspuffer ab.
Sendet meine Applikation einen Befehl an den Sensor, wartet diese anschließend (polling) eine gewisse Zeit auf Antwort. Nach einer bestimmten Zeit (Time Out) wir im Programm fortgefahren.
Könnt das die Ursache sein??
Gruß Joe
- continuum
- UNSTERBLICH(R.I.P.)
- Beiträge: 14759
- Registriert: 09.08.2003, 05:41
- Wohnort: sauerland
- Kontaktdaten:
Hi
leider kann ich zu Details im Hantieren mit COM-ports nicht viel sagen - wenig Erfahrung.
Ich kann dir nur Material zum Experimentieren an die Hand geben.
Die erste 'present'-Zeile ist der Mainswitch, die naechste Gruppe ist dir wahrscheinlich klar.
Die naechsten 3 sind evtl. interessant fuer dich - probier einfach ein bisschen herum. Moegliche Werte sind "TRUE" oder "FALSE"
Es gibt aber auch noch einen grundsaetzlich anderen Modus.
Mit dem verhaelt sich ein Com-port so, dass man in als virtuelle TTY verwenden kann.
Frag mich nicht nach Details - ich weiss nur das man das frueher unter Linux haeufiger brauchte. Vielleicht weiss Stefan oder Minimike oder Looping mehr dazu.
Naja - jedenfalls kannst du mit
serial.v2=False
in diesen Modus wechseln - Workstation 2 verwendete diesen Modus.
Vorsicht - ich weiss wenig darueber wie das mit den anderen Parametern zusammen wirkt.
Es kann sein das eine bestimmte Kombination dein Asthma kuriert - es kann aber auch etwas wirklich unerwartetes passieren.
Joe - falls du Ergebnisse hast, sag bitte Bescheid - von derartigen COM-tricks ist hier nicht viel bekannt.
Ulli
leider kann ich zu Details im Hantieren mit COM-ports nicht viel sagen - wenig Erfahrung.
Ich kann dir nur Material zum Experimentieren an die Hand geben.
serial0.present
serial0.autodetect
serial0.fileName
serial0.fileType
serial0.pipe.endPoint
serial0.startConnected
serial0.allowGuestConnectionControl
serial0.tryNoRxLoss
serial0.yieldOnMsrRead
serial0.baseAddr
serial0.irq
Die erste 'present'-Zeile ist der Mainswitch, die naechste Gruppe ist dir wahrscheinlich klar.
Die naechsten 3 sind evtl. interessant fuer dich - probier einfach ein bisschen herum. Moegliche Werte sind "TRUE" oder "FALSE"
Es gibt aber auch noch einen grundsaetzlich anderen Modus.
Mit dem verhaelt sich ein Com-port so, dass man in als virtuelle TTY verwenden kann.
Frag mich nicht nach Details - ich weiss nur das man das frueher unter Linux haeufiger brauchte. Vielleicht weiss Stefan oder Minimike oder Looping mehr dazu.
Naja - jedenfalls kannst du mit
serial.v2=False
in diesen Modus wechseln - Workstation 2 verwendete diesen Modus.
Vorsicht - ich weiss wenig darueber wie das mit den anderen Parametern zusammen wirkt.
Es kann sein das eine bestimmte Kombination dein Asthma kuriert - es kann aber auch etwas wirklich unerwartetes passieren.
Joe - falls du Ergebnisse hast, sag bitte Bescheid - von derartigen COM-tricks ist hier nicht viel bekannt.
Ulli
-
- Member
- Beiträge: 5
- Registriert: 20.05.2006, 14:27
Hallo continuum,
ertsmal Danke für deine Hilfe.
Ich denk ich hab mein Problem gelöst.
In meiner Applikation frage ich den Empfangspuffer im Polling-Mode ab.
Ich hab dann einfach mal die ComboBox "Yield CPU on poll" auf True gesetzt.
Seitdem ist der Fehler nicht mehr aufgetreten.
Für die Bedeutung dieser ComboBox verweise ich auf das User's Manual.
http://www.vmware.com/de/pdf/ws55_manual_de.pdf
Gruß Joe
ertsmal Danke für deine Hilfe.
Ich denk ich hab mein Problem gelöst.
In meiner Applikation frage ich den Empfangspuffer im Polling-Mode ab.
Ich hab dann einfach mal die ComboBox "Yield CPU on poll" auf True gesetzt.
Seitdem ist der Fehler nicht mehr aufgetreten.
Für die Bedeutung dieser ComboBox verweise ich auf das User's Manual.
http://www.vmware.com/de/pdf/ws55_manual_de.pdf
Gruß Joe
Zurück zu „VMware Workstation und VMware Workstation Pro“
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 10 Gäste