1ms akce pod WinXP

Tomáš Hamouz hamouz@alsoft.cz
Středa Duben 29 08:55:07 CEST 2009


JB> Delal jsem ovladac pro radkovou kameru pripojenou pres par. Port a reakce na
JB> preruseni byly slusny, 2ms bez problemu a ztrat, min jsem nezkousel. Nevim,
JB> jestli se jde zretezit do systemoveho preruseni od casovace, to by mohlo byt
JB> docela elegantni. V tech ovladacich je to asi jedina relativne zarucena
JB> metoda, I kdyz primo obsluha v ISR to taky asi uplne neni... Je to paradox,
JB> procesory na gigaHertzech a je problem reagovat v 1ms

Problem přece neni v CPU, ale v OS.

Tomáš

JB> -----Original Message-----
JB> From: hw-list-bounces@list.hw.cz
JB> [mailto:hw-list-bounces@list.hw.cz] On
JB> Behalf Of "Ing. K.Prokůpek"
JB> Sent: Wednesday, April 29, 2009 8:23 AM
JB> To: HW-news
JB> Subject: Re: 1ms akce pod WinXP


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

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

JB> KPR

JB>  


JB> 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
JB> presnou
>>>
>>>periodu spousteni pomoci TimeGetTime. Problem je ze perioda je v 
>>>prumeru
>>>dostatecne presna,  me by stacila prenost kolem 10%, ale obsas do toho
JB> 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,
JB> pokud 
>>>obcas nastane by nemelo presahnout 3-4ms. Potreboval bych zjistit, zda to
JB> jde.
>>>
>>>
>>>Poradite prosim nekdo ? Dekuji
>>>
>>>      Petr Weissar






Další informace o konferenci Hw-list