[pso] [Tema2][Linux] /proc/interrupts

Andrei Trandafir andreitra1987 at yahoo.com
Sat Apr 10 12:45:45 EEST 2010


Am reusit sa rezolv problema, pana la urma. Eu, dupa ce inseram handler-ul, mai faceam 3 operatii: resetam registrii, activam intreruperile din IER si activam FIFO-ul, iar apoi citeam starea curenta a registrilor UART. Am mutat toate aceste 3 operatii in functia de deschidere a dispozitivului si acum functioneaza totul corect.
Totusi, nu am inteles unde era problema. Ordinea de initializare (si ordinea inversa de eliminare) in modul era:
- porturi
- intreruperi
(*)
- device
(**)

De ce efectuarea celor 3 operatii in (*) dadea problema din /proc/interrupts (care apoi ducea la blocarea sistemului) si in (**) nu mai face asta...is beyond me.

 

--- On Sat, 4/10/10, Razvan Deaconescu <razvan.deaconescu at cs.pub.ro> wrote:

> From: Razvan Deaconescu <razvan.deaconescu at cs.pub.ro>
> Subject: Re: [pso] [Tema2][Linux] /proc/interrupts
> To: "Proiectarea Sistemelor de Operare" <pso at cursuri.cs.pub.ro>
> Date: Saturday, April 10, 2010, 2:09 AM
> On Sat, 2010-04-10 at 00:41 -0700,
> Andrei Trandafir wrote:
> > Am pus acum sa se reseteze IER inainte sa eliberez
> handler-ul de
> > intrerupere, insa nu s-a schimbat nimic. De apelat
> apelez toate
> > functiile de free / unregister. Totusi de unde ar
> putea sa apara
> > inregistrarea aceea din /proc/interrupts? Exista sansa
> sa vina o
> > intrerupere dupa eliberarea handler-ului (care este
> unicul asignat pe
> > acel IRQ)? 
> 
> Daca ai dat free_irq si ai dezactivat intreruperile din IER
> nu ar trebui
> sa vina alte intreruperi. Nu-mi dau seama de ce se intampla
> asta.
> Probabil ca ramane ceva agatat pe undeva legat de
> intrerupere. Ordinea
> in module_exit este free_irq, release_region si
> unregister_chrdev_region? (nu cred ca are vreun impact, dar
> e bine sa
> fie in ordinea inversa apelurilor asociate din
> module_init)
> 
> Razvan
> 
> _______________________________________________
> pso mailing list
> pso at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/pso
> 


      


More information about the pso mailing list