[so2] [Tema2][Lin] problema ciudata in teste

Razvan Deaconescu razvan.deaconescu at cs.pub.ro
Sun Aug 18 18:36:42 EEST 2013


Vlad Badoiu <vladbadoiu at gmail.com> writes:
> Am reusit sa fac sa nu se mai blocheze driverul meu de uart in
> teste. Problema e ca la foarte multe din sub-testele de citire/scriere
> propriu zise (cele 5 din cadrul testelor (3-9)) imi da failed. Nu si
> la testul 8, unde totul e passed.  In debuguri imi apare ca a
> citit/scris toti octetii, deci ma gandesc ca am reusit cumva sa corup
> continutul citit dar nu inteleg cum. La toate sub- testele de ioctl
> imi da passed. Mentionez ca folosesc kfifo si waiting queues pentru
> sincronizare.

Spui că în debug a scris și citit tot. Cum reiese asta? Cum ai
contorizat? Cel mai bine este să afișezi din test ce valori a citit și
să vezi unde/dacă se corupe. Trebuie să vezi următoarele:
a) Ajung datele din user space-ul sender-ului cum trebuie în rutina de
write?
b) Ajung datele cum trebuie din rutina de write în rutina de tratare a
întreruperii? Se scrie valoarea corectă în FIFO-ul UART?
c) Se citesc datele cum trebuie în rutina de tratare a întreruperii
receiver-ului? Se citesc valorile corecte din FIFO-ul UART și se scriu
în buffer-ul de read al dispozitivului?
d) Se citesc valorile corecte în user space-ul receiver-ului din
buffer-ul de read din kernel, prin intermediul rutinei de read?

E ciudat că îți merge la valori mari ale vitezei și nu la viteze
mici. Folosești LSR pentru a verifica dacă ai date de citit sau de
scris?

Răzvan


More information about the so2 mailing list