[pso] [Tema2]Oprire intrerupere la receive

Adrian - Razvan Deaconescu razvand at gmail.com
Thu Mar 30 13:31:43 EEST 2006


On 3/30/06, Daniel Lupei <daniellupei at yahoo.com> wrote:
>
> In testul de verificare al driverului se executa urmatoarele operatii:
> flush_out pe com1
> clear_in pe com2
> write pe com1
> read pe com2
> Daca oprim intreruperea de receive la clear_in si o activam in momentul
> cand apelam read, e posibil ca write-ul sa fi trimis deja mai multe
> caractere care se vor pierde. E ok treaba asta?
>

In momentul in care din test (adica din user space) se apeleaza clear_in se
apeleaza in cadrul operatiei ioctl a driver-ului codul asociat. In momentul
in care se face clear_in intr-adevar se dezactiveaza intreruperea, dar, dupa
ce s-a asigurat ca s-a golit buffer-ul UART, aceasta se reactiveaza.

Dezactivarea este numai in kernel-space. Intri in kernel-space, dezactivezi
intreruperea, iti faci treaba, reactivezi intreruperea si iesi din kernel
space. Astfel, cand se va apela din user space write, te vei fi intors din
clear_in cu intreruperea reactivata.

Sper ca nu am fost prea putin explicit :),
Razvan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://cursuri.cs.pub.ro/pipermail/pso/attachments/20060330/0da12e28/attachment.html


More information about the pso mailing list