[so2] [Tema 2] Intrerupere UART

Daniel Baluta daniel.baluta at gmail.com
Fri Apr 4 16:12:32 EEST 2014


2014-04-04 13:48 GMT+03:00 Mititelu Stefan <fanx07 at gmail.com>:
> Salut! In momentul in care activez intrerupera de citire imi citeste mereu
> cu 1 octet mai mult ca in teste. Intreruperea de read o activez in
> module_init.
> In intrerupere, in momentul in care citesc un byte din uart in coada read,
> semnalez faptul ca exista bytes pentru a se face copy_to_user. Folosesc
> kfifo pt bufere si waiting_queue pt a semnala. Ex de 2 apeluri read
> succesive:
>
> asteapta in wqueue pana exista cel putin un bte in coada read
> kfifo_len=1  bytes_read=0 param_size=128
> //intra in intreruperea de read de 128+62 ori
> copy_to_user
> kfifo_len=63  bytes_read=128 param_size=128
>
> asteapta in wqueuqe
> kfifo_len=63  bytes_read=0 param_size=62
> copy_to_user
> kfifo_len=1  bytes_read=62 param_size=62
>
> ..unde kfifo_len repr numarul de bytes din kfifo, byte_read cat s-a transmis
> in userspace, param_size parametrul size din functia read().
>
> Are cineva o idee de ce ar intra in handler mereu cu 1 mai mult ca in teste?

Salut,

Zi-ne ce se întâmplă pe un test simplu, în care trimiți pe serială 1 octet.

thanks,
Daniel.


More information about the so2 mailing list