[pso] Tema 2 Linux - probleme handler intrupere

Octavian Voicu octavian.voicu at gmail.com
Sat Apr 4 02:24:37 EEST 2009


Functia write din file ops e apelata de kernel cand vrea sa scrie date in
device (daca faci echo "x" > /dev/mydev, unde mydev este asociat driverului
tau prin type/major/minor, kernelul apeleaza functia write din file ops). In
functia write, scrii datele cu outb() catre device.
IRQ-ul este pentru cand device-ul are date noi si semnaleaza ca trebuie
citite. Folosind inb(base) citesti datele de la device si apoi faci inca un
inb(base+2) ca sa citesti din registrul IIR si sa resetezi intreruperile.

Read-ul din file ops ar trebui sa returneze datele citite in handlerul de
intrerupere (sau sa se blocheze daca nu sunt date disponibile).


2009/4/4 ovidiu popa <ov.popa at gmail.com>

> Salut,
>
> Am urmatoarea nelamurire legata de comportarea temei. Mai precis intrebarea
> e legata de urmatoarele linii din teste
>
> test(do_write(com1, wb, BUFFER_SIZE) == 0, "write %s", com1_path);
> test(do_read(com2, rb, BUFFER_SIZE) == 0, "read %s", com2_path);
>
> Din cate am inteles cautand pe lista de disctutii, in write copiez din user
> space intr-un write buffer local. Write Bufferul este scris pe serial cu
> outb in handlerul de intrerupere.
> In read copiez in user space dintr-un read buffer local. Read bufferul este
> umplut cu date primite pe seriala(inb) in handlerul de intrerupere .
>
> Nelamurirea mea este cum se leaga exact functiile de read write de
> intrerupere? Mie imi intra o singura data in intrerupere la initializarea
> modului.
> Imi ramane blocat in read.
>
> Cum ar trebui sa intre in intrerupere pentru ca in write doar se scrie in
> bufferu intern. Mie imi scapa.
>
> _______________________________________________
> pso mailing list
> pso at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/pso
>
>


-- 
Octavian Voicu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/pso/attachments/20090404/b3110036/attachment.htm>


More information about the pso mailing list