PCI kartya interrupt

tiszaii tiszaii at axelero.hu
Thu Aug 7 16:43:30 CEST 2003


>
>
>Sikerult mar valakinek sajat keszitesu PCI kartya altal interruptot
>kivaltani es kezelni windows alatt?
>Illetve nem kell, hogy sajat keszitesu legyen, a hw valszeg jo, a
>kezeles nem megy.
>

Kicsit zavaros a kérdésed, de megpróbálok válaszolni rá.
Eddig NT-re és Win2000-re irtam drivet, a Win2000/
XP/Win98-ban a WDM  DDK rendszert használjuk, itt fel
kell ismerni az OS pnp-jének a kártyádat, ehhez
fel kell installálnod egy általad készitett inf kiterjesztésű
text fájllal, meg irnod kell egy betöltő pnp source driver részt.
Utána, ha elinditod a pc-t,  a control panel/system/hardver-ek
között látod a kártyádat, akkor oké minden:
a driver device inditó pnp részénél az
IoGetCurrentIrpStackLocation(Irp)->MinorFunction== IRP_MN_START_DEVICE-nél
beágyazod a hardvered PCI interfacét a rendszer logikai/virtuális 
memóriájába a
IrpStack->Parameters.StartDevice.AllocatedResourcesTranslated 
segitségével, itt
van egy type dolog, amivel megállapithatod, hogy az OS io-nak, 
memóriának, interrupt
résznek, dma résznek látja a hardvered bizonyos részeit, ezt nem irom le,
ehhez ott van a DDK helpje, majd  io-t:MmUnmapIoSpace(..)-el, az 
interruptot:
IoConnectInterrupt(...) fg., benne a az interrupt callback ISR, amit 
meghiv az OS, ha
a kártya INT-et ad, persze a kártya regisztereit is be kell állitani, kell
csinálni egy DPC rendszert is, aminek átadja az ISP a feldolgozást, 
tehát az ISP-ból
rögtön kilép, az ISP IRQ  a legmagasabb, és egy DPC Dispatch IRQ szinten 
feldolgozza, igy
igy nincsen int feltorlódás.Stb.
Tehát kell a DDK help, a DDK-ban van minta is, ha nincs akkor keress az 
interneten.
üdv
TI





More information about the Elektro mailing list