Hi!
Ich mache von einem Programm aus Zugriffe auf die parallele Schnittstelle. Dazu greife ich direkt auf die IO-Ports 378h-37Ah mit den x86-Befehlen „IN“ und „OUT“ zu.
Jeder dieser Zugriffe dauert bei mir ca. 1.5µs! Und zwar auf einem Laptop mit Pentium M mit 1.86GHz. Auf einem Pentium 4 Rechner mit 2.8GHz ist es nur ein kleines bisschen schneller.
Woher kommt diese extrem lange Verzögerung?
Danke
Hansi
PS:
* Betriebssystem: GNU/Linux mit Kernel 2.6.26
* vor den direkten IO-Zugriff hab ich die Ports natürlich mit
ioperm() die Ports freigegeben
* Programmiersprache FreePascal
* die IO-Zugriffe mache ich mit den Funktionen ReadPortB und
WritePortB, die aber beide sehr effizient implementiert sind.
* Ich hab mir den Kernel-Code angeschaut und festgestellt, dass
außer beim ersten IO-Zugriff keine Exceptions im Spiel sind. Die
Zeit dauert also wirklich der IO-Zugriff alleine.