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