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

Hilfe bei Problemen mit der Installation und Benutzung der VMware Workstation und VMware Workstation Pro.

Moderatoren: irix, continuum, Dayworker

Member
Beiträge: 5
Registriert: 20.05.2006, 14:27

serielle Schnittstelle Timing

Beitragvon Joe Cotton » 20.05.2006, 14:39

Hallo zusammen,

so eine VM ist eine wirklich tolle Sache. :grin:

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

Benutzeravatar
Moderator
Beiträge: 14752
Registriert: 09.08.2003, 05:41
Wohnort: sauerland
Kontaktdaten:

Beitragvon continuum » 21.05.2006, 03:52

Hi
poste die vmx

Ulli

Benutzeravatar
Moderator
Beiträge: 14752
Registriert: 09.08.2003, 05:41
Wohnort: sauerland
Kontaktdaten:

Beitragvon continuum » 21.05.2006, 05:49

Liegt der COM-port auf einer Erweiterungs PCI-karte?

Ist dein Host Linux - womoeglich noch auf einem Dualcore-system? AMD?

Sagt das log was zum timing?

Member
Beiträge: 5
Registriert: 20.05.2006, 14:27

Beitragvon Joe Cotton » 21.05.2006, 10:29

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

Benutzeravatar
Moderator
Beiträge: 14752
Registriert: 09.08.2003, 05:41
Wohnort: sauerland
Kontaktdaten:

Beitragvon continuum » 22.05.2006, 00:17

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.


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

Beitragvon Joe Cotton » 23.05.2006, 07:48

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


Zurück zu „VMware Workstation und VMware Workstation Pro“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste