[pso] [tema2] backbuffer si testerul

Irina Tirdea ynuka13 at gmail.com
Sat Apr 19 20:03:21 EEST 2008


> salut,

> nu e specificat nicaieri in enunt cat de mare trebuie sa fie
> backbufferul la uart, moment in care eu am considerat ca 1 octet e ok.

Daca prin backbuffer intelegi buffer-ele pastrate intern de driver-ul tau,
atunci 1 octet nu prea e suficient/eficient. Ideea este sa pastrezi in
aceste buffere date pe care le citesti/scrii din/in mai multe intreruperi
(care pot citi/scrie 1 octet sau mai multe cu FIFO), si apoi sa poti citi
mai multi octeti odata printr-un apel din userspace. Pentru ca testul sa iti
mearga ok, trebuie ca bufferul tau intern sa aiba cel putin 256 octeti.

> deci se scriu 256 octeti.
> DUPA, se citesc maxim 256 octeti. 

Corect.

> e ok daca in cazul meu doar 1 ajunge
> inapoi? dar 4, 8, 14 (ca pot seta triggerul pe RDAI la valorile
> astea), 32, 64, 128?

Octetii astia de obicei iti ajung in intrerupere. Acolo ii copiezi in
buffer-ul intern si intorci la un apel read din userspace tot ce ti-a venit
pana in momentul respectiv. Daca ti-au venit doar 4/8/.../128 de octeti cand
se apeleaza read din userspace, atunci atat intorci si functia do_read din
test citeste pana cand vin toti cei 256 octeti. 

> cumva se doreste sa apara pe ecran (BUFFER_SIZE / 16) x "data check"?

Nu. Va aparea un singur data check, dupa primirea tuturor celor 256 de
octeti. 

> imi imaginez ca pentru o garantie a trimiterii si receptionarii
> tuturor octetilor, read ar trebui facut in paralel cu write, si
> verificarile facute in-place. sau write(1 byte) alternand cu read(1
> byte).

Da. In cazul testului, ai aceasta garantie daca folosesti un buffer cu cel
putin 256 octeti.


Irina





More information about the pso mailing list