[pso] [Tema 2] [Win] - Setari initiale + instalare intrerupere
Andrei Ciuca
andrei.ciuca at gmail.com
Fri Apr 4 17:38:51 EEST 2008
Salut,
Am si eu o problema legata de tema 2 pe windows - nu reusesc sa mi se
apeleze intreruperea ... acum nu stiu daca nu am instalat-o corect sau daca
nu scrium cum trebuie.
Initializarea pentru cele 2 porturi o fac in felul urmator :
1) scriu in FIFO Control Register 0x07 = 00000111
adica trigger la 1 byte , DMA mode select disabled , resetare buffere ,
bufferre FIFO activate
nu stiu daca e vreo problema cu faptul ca pun pe 0 si bitii 4 si 5, care
sunt rezervati (dar nu am cum sa aflu valoarea lor anterioara,
registrul fiind read-only)
2) setez bitul DLAB , scriind in Line Control Register 0x80
3) setez rata de transfer prin setarea divizorului la valoarea 3
- scriu in low valoarea 0x03 si in high valoarea 0x00
4) scriu in Line Control Register la valoarea 0x0B = 00001011
DLAB=0 , break disable , paritate impara , 1 bit de stop , lungime
cuvant de 8 biti
5) kVector = HalGetInterruptVector(Internal, 0, IRQ , 0, &kIrql,
&kAffinity);
un IRQ este 3 pentru 0x2F8 si 4 pentru 0x3F8
6) PKINTERRUPT intrObject;
BOOLEAN intrFunc(IN PKINTERRUPT Interrupt, IN PVOID ServiceContext)
IoConnectInterrupt( &intrObject, intrFunc, date, NULL , kVector , kIrql,
kIrql, Latched sau LevelSensitive ,TRUE, kAffinity, FALSE );
am incercat si cu Latched si cu LevelSensitive
functia nu intoarce eroare
7) scriu in Interrupt Enable Register 0x03
inseamna ca se genereaza intreruperi pentru cazurile in care avem date
de citit sau putem sa scriem date
dupa , am incercat sa apelez din DriverEntry
WRITE_PORT_UCHAR((PUCHAR)0x3F8,(UCHAR)'a');
sau
WRITE_PORT_UCHAR((PUCHAR)0x2F8,(UCHAR)'a');
... nu stiu daca e corect sa fac asta ... oricum nu se intampla nimic
am incercat sa dau din cygwin
echo "test" > \\.\pipe\pipe_seriala
nu se intampla nimic
mai precizez ca am incercat sa inregistrez intreruperea doar pentru COM1 sau
doar pentru COM2
si am incercat sa inregistrez si pentru amandoua aceeasi functie
din device manager am activa initial COM1 si COM2 ... dar am citit ca
trebuie sa fie dezactivate si le-am dezactivat la loc . Sper ca nu au fost
si alte consecinte datorate activarii lor.
Ce fac gresit ? :D
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://cursuri.cs.pub.ro/pipermail/pso/attachments/20080404/018f952f/attachment.htm
More information about the pso
mailing list