USB stört Timer-Interrupt

Konfiguration, Anwendungen, Treiber und TSRs unter DOS
Antworten
TomCat
MemMaker-Benutzer
Beiträge: 87
Registriert: Do 1. Dez 2011, 17:16

USB stört Timer-Interrupt

Beitrag von TomCat »

Hallo,

ich hab den Timerinterrupt auf eine eigene Interrupt-Service-Routine verbogen und die Ansprungrate auf 1000 mal/Sekunde verstellt. Solange im Rom-Bios USB disabled ist, wird die Interruptservice-Routine sehr exakt mit nur geringem Jitter (kleiner 3 Mikrosekunden) angesprungen. Sobald aber im Rom-Bios USB enabled ist, messe ich einen Jitter von ueber 1500 Mikrosekunden !!

Frage:
1. Wie kann das sein, wenn gar kein Gerät an einem USB-Port hängt ?
2. kann ich den USB-Port auch software-seitig soweit disablen oder verbiegen, oder was auch immer, dass er nicht mehr stört?

THX
TomCat
Brueggi

Re: USB stört Timer-Interrupt

Beitrag von Brueggi »

Da fällt mir spontan ein: Verbieg doch den USB-Vektor einfach mal auf ein "IRET". Und wenn Du fertig bist, stell den Vektor wieder zurück. USB wirst Du dann eh nicht verwenden in deinem Programm, oder?

Kann es ggf. sein, dass der USB-Port "stört", weil er durch Polling ständig abgefragt wird?
Benutzeravatar
ChrisR3tro
Administrator
Beiträge: 1981
Registriert: Mo 7. Mär 2005, 23:33
Wohnort: NRW
Kontaktdaten:

Re: USB stört Timer-Interrupt

Beitrag von ChrisR3tro »

Schonmal auf 'nem anderen PC probiert?
TomCat
MemMaker-Benutzer
Beiträge: 87
Registriert: Do 1. Dez 2011, 17:16

Re: USB stört Timer-Interrupt

Beitrag von TomCat »

Hallo

danke für die Antworten, habs auf 3 total verschiedenen Rechner ausprobiert. immer das gleiche Ergebnis. ja das mit dem Verbiegen des USB-Interrupts ist mir auch schon in den Sinn gekommen. Ich weiß nur nicht, auf welchem IRQ der liegt. Sind ja nur 16 Leitungen.

Weiß jemand wo der USB-IRQ liegt?


Achja, Programm läuft im real mode mit Dos 6.22
TomCat
MemMaker-Benutzer
Beiträge: 87
Registriert: Do 1. Dez 2011, 17:16

Re: USB stört Timer-Interrupt

Beitrag von TomCat »

Also neue Erkenntnis. Es liegt am USB-Legacy Support, den man im BIOS einstellen kann, also nicht am USB an sich.

Nur gibt es eine Möglichkeit diesen USB-Legacy Support auch per software auszuschalten, bzw. irgendwie "unschädlich" zu machen und nicht nur per Bios - Einstellung? Was mich auch generell interessieren würde. Warum stört der Legacy-Support eigentlich?
Brueggi

Re: USB stört Timer-Interrupt

Beitrag von Brueggi »

Ich hab ein wenig "herumgelesen" und bisher nur herausgefunden, dass der USB-Controller den INT $0A belegt. Ob das allerdings immer so ist, k. A. Da gibt es bestimmt im BIOS-Segment $0040 oder in der Echtzeituhr/NVRAM ein paar Bits, die das regeln. Nur a) ob die wirklich immer an der gleichen Stelle sind und b) wo die sind, konnte ich leider nicht herausfinden.
DOSferatu
DOS-Übermensch
Beiträge: 1220
Registriert: Di 25. Sep 2007, 12:05
Kontaktdaten:

Re: USB stört Timer-Interrupt

Beitrag von DOSferatu »

Ein kleiner Einwurf meinerseits:
Soweit ich weiß, kann man beim PC die IRQs priorisieren, d.h. wenn mehrere IRQ-Signale anliegen, welcher zuerst ausgeführt wird.
Will sagen: Wenn man den Ticker-IRQ (0) auf die höchste Priorität stellt, könnte es das Problem beheben.
Aber: IRQ-Prioritäten setzen/ändern habe ich schon ewig nicht gemacht. Irgendwo in meiner Unit für den seriellen Port hab ich da was drin, da müßte ich mal forschen. (Wenn meine Units "fertig" sind und funktionieren, fummle ich da meistens nicht mehr dran herum [außer, wenn mal etwas zu erweitern ist] - weil ich mich dann ja wieder anderen Dingen zuwende.)
TomCat
MemMaker-Benutzer
Beiträge: 87
Registriert: Do 1. Dez 2011, 17:16

Re: USB stört Timer-Interrupt

Beitrag von TomCat »

Hallo,

ich zhab schon alles versucht, auch alle 16 Interrupts verboten, also disabled und nur den Timer zugelassen. Hilft alles nichts. Sobald der USB-Legacy-Support an ist, hab ich den riesen Jitter :-((
Benutzeravatar
ChrisR3tro
Administrator
Beiträge: 1981
Registriert: Mo 7. Mär 2005, 23:33
Wohnort: NRW
Kontaktdaten:

Re: USB stört Timer-Interrupt

Beitrag von ChrisR3tro »

Das ist ja interessant. Ich habe früher immer bemerkt, dass z.B. im Spiel Tyrian die (MIDI-)Musik sehr unregelmäßig schnell spielt, wenn ich eine Mouse am USB-Port betreibe und über USB-Legacy-Support sie als PS/2-Mouse emuliere. Könnte das dasselbe Problem sein?

Ich stelle mir das dann so vor, dass der USB-Interrupt zu oft feuert und die CPU zu oft anhält, sodass es zu diesem Jitter kommt.

Gruß
locutus
Benutzeravatar
CptKlotz
Admin a.D.
Beiträge: 2947
Registriert: Mo 7. Mär 2005, 23:36
Wohnort: Dorsten
Kontaktdaten:

Re: USB stört Timer-Interrupt

Beitrag von CptKlotz »

Passierte bei mir aber auch, wenn die Maus über PS/2 angeschlossen war und ließ sich mit einem anderen Maustreiber beheben.
“It is impossible to defeat an ignorant man in argument.” (William G. McAdoo)
TomCat
MemMaker-Benutzer
Beiträge: 87
Registriert: Do 1. Dez 2011, 17:16

Re: USB stört Timer-Interrupt

Beitrag von TomCat »

Hi, naja ich hab mir ne Software gebat, die das alles total exakt messen kann. Also es ist nur ein Jitter von ca. 2 millisekunden der bei eingeschaltetem Legacy-Support auftritt. Also die "Mausprobleme" haben sicher ne andere Ursache. An den interrupts 1-16 liegts nicht. habe alle entweder ausgeschaltet oder auf ne eigene Service-Routine verbogen die kaum Durchlaufzeit benötigt. Mich würde wirklich interessieren wie dieser Jitter zustande kommt. :-(

Sind so die letzten Ecken von DOS die es noch auszukundschaften gilt...
Antworten