[pso] [Tema2][Linux]Citire din handler

Razvan Deaconescu razvand at cs.pub.ro
Thu Apr 26 18:31:58 EEST 2007


Costin Boldisor wrote:
> In handler, daca trebuie citit de pe seriala, am cum sa-mi dau seama 
> cati bytes sunt disponibili
> (in bufferul UART)?
>  
> Gasisem pe net ca in Line Status Register, bitul 0 (Data Ready) ar 
> trebui sa-mi spuna cand sunt date disponibile.

bitul DATA_READY iti spune daca ai sau nu date disponibile

in cazul in care primesti o intrerupere de read (RDAI) va trebui sa faci 
ceva de genul:

while (lsr_had_data_ready_bit_set) {
     read from fifo;
     copy in kernel buffer;
}

> Problema mea este ca la read in handler reusesc sa citesc niste bytes 
> (20-30), pe care ii scriu in user space, dupa care nu
> imi mai intra in handler.
> Puteti sa-mi dati vreo idee? :)

incearca sa fortezi reaparitia intreruperilor prin reactivarea lor 
(setarea bitilor corespunzatori din IER)

Razvan


More information about the pso mailing list