[pso] [tema2lin]pierdere intreruperi

Marius Viorel Grigoras grigorasmariusviorel at gmail.com
Tue Apr 13 19:53:22 EEST 2010


Salut,

Problema la mine era ca aveam vreo 3-4 printk-uri in handler, care durau
destul de mult. Atentie la ce instructiuni aveti in intrerupere.
Multumesc inca o data lui Razvan pentru timpul acordat la consultatii.

Numai bine,
Vio.

În data de 13 aprilie 2010, 17:46, Alexandru Palade <
alexandru.palade at loopback.ro> a scris:

>  Salut,
>
> Sper sa nu-ti "fur" postul, dar cred ca avem aceeasi problema.
>
> Ca sa generalizez un pic, ma gandesc la urmtoarul scenariu:
> - vine o intrerupere cum ca trebuie sa citesc
> - citesc o parte din caractere si mi se umple buffer-ul
> - ma opresc (?) din citit in handler si trezesc pe cei ce vor sa citeasca
> - ies din handler
>
> Cum fac sa reiau cititul in handler? Am observat ca daca la sfarsitul
> fiecarui read din operatia din driver adaug ce e scris in FAQ pentru write,
> adica:
>
> outb(0x00, IER);
> outb(0x03, IER);
>
> functioneaza. Dar nu prea are sens, cel putin in capul meu. Ce alta
> modalitate mai am (in afara de a mari buffer-ul, care clar functioneaza) sa
> nu pierd datele ramase dintr-o intrerupere care n-au putut fi salvate din
> prima?
>
> Mentionez ca nu folosesc FIFO si oricum nu cred ca reprezinta o solutie la
> problema asta. Dar sunt deschis la contra-argumente.
>
> Multumesc,
> Alex
>
>
> On 04/13/10 15:11, Marius Viorel Grigoras wrote:
>
> Salutare,
>
> Am rulat tema de mai multe ori si de fiecare data mi se blocheaza la
> read-urile cu viteze mari (UART16550_BAUD_115200), mai exact nu a trecut
> niciodata de primul read pentru viteza 115200.
> Am comentat aceste read-uri (din ultimile teste), am rulat tema de mai
> multe ori, si nu se blocheaza niciodata.
> Pur si simplu, nu-mi vin intreruperi pentru read, tema se blocheaza in
> read(), la apelul de wait, deci nu  se face wake_up din handler. Uneori,
> apuca sa faca 1-2 loop-uri, din cele 20 pentru viteza 115200.
> Precizez ca am activat FIFO (outb(0xc7, data->base+FCR), si scriu in
> bufferul de read din handler atat timp cat hard-ul are sa-mi trimita date si
> mai am loc in buffer.
> Nu inteleg de ce nu se comporta la fel si pentru write.
>
> Multumesc,
> Grigoras Marius - Viorel 343C3.
>
>
> _______________________________________________
> pso mailing listpso at cursuri.cs.pub.rohttp://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/pso
>
>
> _______________________________________________
> pso mailing list
> pso at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/pso
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/lurker/list/pso.html/attachments/20100413/a8f2f67b/attachment.htm>


More information about the pso mailing list