[pso] [Tema 2] [Win] - Setari initiale + instalare intrerupere

Andrei Ciuca andrei.ciuca at gmail.com
Sat Apr 5 19:07:10 EEST 2008


a, si acum citesc IIR la fiecare apelare a intreruperii

2008/4/5 Andrei Ciuca <andrei.ciuca at gmail.com>:

> Inca ceva.
>
> De ce se intampla urmatoarele lucruri :
>
> - la inceput intreruperile sunt dezactivate
> - pornesc un program din user-space care genereaza pe unul din device-uri
> primesc un IRP de scriere si activez intreruperea pentru scriere pachetul il
> bag intr-o coada de asteptare
> - se activeaza intreruperea pentru scriere ; scriu cate un byte atata timp
> cat bitul din LSR corespunzator ( Bit 5 - Empty Transmitter Holding Register
> ) este setat ... nu am incercat sa bag dimensiuni foarte mari pentru scris ,
> dar am observat ca nu prea se umple ... cat poti sa bagi in el ?
>   practic dupa o singura intrerupere pentru scris consum bufferul ce
> trebuie trimis si dezactivez intreruperea pentru scris
> - numai ca dupa ce scriu primesc o intrerupere cum ca as avea date de
> citit ... chiar daca deocamdata am setat sa nu-mi genereze intrerupere
> pentru "data available" ... nu am nici o cerere de citit date si pun bitul
> corespunzator pe 0 -> o dezactivez
> - pornesc un alt client din user-space care genereaza un IRP de citire ,
> activez intreruperea pentru "data available" , dar nu se mai intampla nimic
> ... nu se mai genereaza nici o intrerupere :(
>
> Deci :
> 1) de ce mi se apeleaza functia atunci cand sunt date de citit, daca eu nu
> am cerut asta ?
> 2) daca atunci cand sunt date de citit eu nu le citesc, nu o sa mai
> primesc alta notificare ?
>
> (mentionez ca am setat activarea intreruperii la Latched)
>
>
> 2008/4/5 Irina Tirdea <ynuka13 at gmail.com>:
>
> >
> > > 1) adica daca vine o intrerupere si eu nu citesc registrul ala nu le
> > mai
> > activeaza dupaia ?
> >
> > Da. Bitii din IIR se reseteaza la anumite operatii (fiind registru
> > read-only). Bitul 0 (Interrupt Pending) se reseteaza cand citesti IIR.
> > Cat
> > timp ai o intrerupere pending, nu ti se mai trimit alte intreruperi
> > (adica
> > nu ti se mai apeleaza inca o data rutina de tratare a intreruperii).
> > Gasesti
> > mai multe detalii despre cum se folosesc/reseteaza bitii din registre in
> > data sheet-ul pentru UART [1].
> >
> > Oricum ar trebui sa citesti IIR in intrerupere, pentru a vedea ca
> > intreruperea pe care ai primit-o apartine device-ului tau. Pentru a
> > vedea
> > exact daca ai primit date sau poti transmite e mai bine sa citesti LSR.
> >
> > Asta se aplica la intreruperi in general. Intreruperea THREI are un
> > statut
> > mai special, datorita faptului ca se genereaza imediat cum ai registrul
> > gol
> > [2]
> >
> > > 2) ce presupune exact activare "latched" ?
> >
> > Activarea Latched/LevelSensitive se refera la intreruperi
> > edge-triggered/level-triggered. Adica o intrerupere de tip latched va fi
> > activata de o tranzitie de nivel 0-1 sau 1-0 pe linia de intrerupere,
> > iar o
> > intrerupere LevelSensitive va fi activata de prezenta unui anumit nivel
> > (0/1) pe linia de intrerupere.[3]
> >
> > [1] http://www.national.com/ds/PC/PC16550D.pdf
> > [2] http://cs.pub.ro/pipermail/pso/2007-June/001906.html
> > [3] http://en.wikipedia.org/wiki/Interrupt
> >
> >
> > _______________________________________________
> > pso mailing list
> > pso at cursuri.cs.pub.ro
> > http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/pso
> >
>
>
>
> --
> Andrei Ciuca,
> Member of BEST Bucharest
> Mobile    : +40741.274.724   /   +40762.263.489
> E-mail    : andrei.ciuca at BEST.eu.org
> GTALK   : andrei.ciuca at gmail.com
> YM        : andrei.ciuca at yahoo.com
> MSN      : andrei.ciuca at hotmail.co.uk
> www.BEST.eu.org/Bucharest
>



-- 
Andrei Ciuca,
Member of BEST Bucharest
Mobile    : +40741.274.724   /   +40762.263.489
E-mail    : andrei.ciuca at BEST.eu.org
GTALK   : andrei.ciuca at gmail.com
YM        : andrei.ciuca at yahoo.com
MSN      : andrei.ciuca at hotmail.co.uk
www.BEST.eu.org/Bucharest
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://cursuri.cs.pub.ro/pipermail/pso/attachments/20080405/792ef759/attachment-0001.htm 


More information about the pso mailing list