[so2] [Tema2] Activare intreruperi

Vali Ghita valx92 at gmail.com
Thu Apr 2 22:51:39 EEST 2015


Salut,


În data de 2 aprilie 2015, 22:05, Popa Nicolae via so2
<so2 at cursuri.cs.pub.ro> a scris:
> Salut!
>
> Am o nelamurire in legatura cu functionarea intreruperilor. Atunci
> cand in buffer-ul meu din kernel space adaug date, care ulterior le
> voi adauga in buffer-ul hardware, eu trebuie manual sa activez de
> fiecare data intreruperile pentru citire si scriere din registrul IER,
> astfel incat intreruperea sa fie declansata?

Intreruperea respectiva e edge triggered, deci vine doar cand semnalul
asociat intreruperii trece din 0 in 1.
Deci, in momentul in care vine intreruperea, handler-ul se apeleaza o
singura data, chiar daca semnalul intreruperii ramane tot timpul pe 1.
Pentru a putea sa o primesti din nou, trebuie sa dezactivezi
intreruperea respectiva (astfel semnalul asociat va trece pe 0) si sa
o activezi (ca sa poata trece din nou in 1).

> De asemenea in handler-ul
> intreruperii se face diferentierea in functie de datele din registrul
> LSR, astfel incat sa vad daca am un read sau write de tratat? Sau se
> pot face cate doua handlere separate?

Poti face diferenta intre cele doua intreruperi (cea de receive si cea
care te anunta ca bufferul de trimitere este gol) citind registrul IIR
si sa verifici bitii 1 si 2, care iti spun ce intrerupere este activa.

>
> O seara buna,
> Popa Nicolae, 342 C1
> _______________________________________________
> http://ocw.cs.pub.ro/courses/so2/resurse/lista-discutii


More information about the so2 mailing list