PCI kartya interrupt

Kovács András andras at sdktech.com
Fri Aug 8 15:33:12 CEST 2003


Koszi a valaszt, szerencsere azota megoldodott, vagy legalabbis egy
masik feladvany lett belole. Roviden: van ket kartya, lenyegileg
egyformak. Mindketton van egy led az 5V es a PCI INTA# laba kozott. Az
egyiken, ha megszakitast kerek vilagit folyamatosan, de nem hivja meg a
rutint, a masikon csak egy pillanatra kicsit erosebben vilagit es
meghivja. Eddig csak az elsovel probaltuk a keszulo drivert es mar ket
napja semmi otletunk nem volt ra, nem gyanakodtunk a HW-re (csak a
software-es kollega), vegul kiprobaltuk a masik kartyaval es mukodik.

Udv!

Andras

-----Original Message-----
From: elektro-bounces at tesla.hu [mailto:elektro-bounces at tesla.hu] On
Behalf Of tiszaii
Sent: Thursday, August 07, 2003 4:44 PM
To: elektro at tesla.hu
Subject: RE:PCI kartya interrupt


>
>
>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




---------------------------------------
Legyszi ezentul az elektro at tesla.hu
cimre kuldd a leveleket




More information about the Elektro mailing list