1ms akce pod WinXP

"Ing. K.Prokůpek" kpr@seznam.cz
Středa Duben 29 08:22:55 CEST 2009


Ještě je jedno řešení, které by podpořilo $subj. Udělat si vlastí 
periferii, PCI-express nebo PCI, která by na sobě měla hardwarový čítač, 
který by pak periodicky házel přerušení.
K tomu by byl potřeba kvalitní driver. Pokud by na sběrnici nebylo moc 
dalších zařízení (např. grafická karta, zvuková karta), mohy by být 
požadavky obslouženy včas. U ISA by to bylo daleko jednoddušší, ale kdo 
ji z nás ještě v PC má :-).

Ještě mně napadlo jedno řešení. Vykostit Win XP, tak aby bylo co nejméně 
běžících modulů a ovladačů na nízké vrstvě. Např. dát pryč síťovou 
kartu, úplně vyrušit podporu TCPIP. Otázkou je jestli Win XP, když má 
kompletně odinstalovanou síť, jestli součást jádra také je deaktivovaná, 
nebo jestli ji systém volá stále.
Dát pryč USB hosty, popř. grafickou kartu. Pak už mně nenapadá nic víc 
(kromě řadiče disku), co by mohlo periodicky otravovat a být příčinou 
prodlev.

KPR

 


Vojtěch Bubník napsal(a):

>Na Windowsech s pomocí multimedia timers dosáhnete časování v řádech jednotek ms většinou, ale není to zaručené, jak jste již zjistil.
>
>Napsat si modul do kernelu, ať už to budou běžné Windows či Linux pomůže, ale vyovolání timeru vám to nezaručí. Je to tím, že jádro a ovladače nejsou preemptivní. Pro zajímavost, Windows CE jsou psány jako real time operační systém, což znamená, že je přesně definovaná maximální doba odezvy, ale 10% z 1ms to nebude.
>
>Pokud nutně potřebujete spolehlivé časování po 1ms, potom budete potřebovat buď real time operační systém a umět ho použít, a nebo nějaký externí bastl. Druhé řešení mi připadá smysluplnější a univerzálnější.
>
>Vojta Bubník
>
>  
>
>>------------ Původní zpráva ------------
>>Od: Ing. Petr Weissar, Ph.D. <weissar@kae.zcu.cz>
>>Předmět: 1ms akce pod WinXP
>>Datum: 28.4.2009 09:54:55
>>----------------------------------------
>>Zdravim, rada z vas tu k ovladani HW pouziva PC s Win (XP) a tak tu zkusim udat
>>
>>dotaz meho kolegy:
>>
>>Potrebuji spoustet nejaky podprogram s periodou 1ms. Umim to udelat pomoci 
>>TimeSetEvent a callback funkce - z knihovny mmsystem. Umim take zjistit presnou
>>
>>periodu spousteni pomoci TimeGetTime. Problem je ze perioda je v prumeru 
>>dostatecne presna,  me by stacila prenost kolem 10%, ale obsas do toho promluvi
>>
>>win, a perioda se prodlouzi 1x na 10-20ms, pak se to system snazi dohnat 
>>kratkymi priodami a pak se to vrati zase k normalu. Je to samozrejme 
>>nepravidelne s cetnosti tak do 20 za 1s. Co by me stacilo - perioda 1ms, 
>>presnost 10% (ale znama, umim zjistit pomoci TimeGetTime) a prodlouzeni, pokud 
>>obcas nastane by nemelo presahnout 3-4ms. Potreboval bych zjistit, zda to jde.
>>
>>
>>Poradite prosim nekdo ? Dekuji
>>
>>	Petr Weissar
>>_______________________________________________
>>HW-list mailing list  -  sponsored by www.HW.cz
>>Hw-list@list.hw.cz
>>http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>>
>>    
>>
>_______________________________________________
>HW-list mailing list  -  sponsored by www.HW.cz
>Hw-list@list.hw.cz
>http://list.hw.cz/mailman/listinfo/hw-list
>
>  
>




Další informace o konferenci Hw-list