[pso] Tema 2 linux

Radu Rendec pso@cursuri.cs.pub.ro
Mon, 23 Aug 2004 12:44:53 +0300


Salut,

Nu mai sunt sigur, dar pentru primit date cred ca trebuie sa citesti
datele deja primite din registru pana sa se genereze alta intrerupere
(cu alte cuvinte nu apar intreruperi noi de primire date daca ai date
nepreluate din uart).

Pentru trimitere este normal sa apara o singura intrerupere atunci cand
s-au terminat de trimis datele. In mod normal ar trebui sa ai un buffer
(soft), prima trimitere (fizica i.e. scriere in registrii uart) sa o
faci din rutina de scriere, apoi trimiterile urmatoare sa le faci din
handlerul de intrerupere, pana se goleste bufferul tau.

Un alt sfat ar fi sa dezactivezi fifo-urile din uart. Tin minte ca
atunci cand am facut eu tema am avut probleme de sincronizare (intre
cele 2 porturi) cu fifo-urile activate (adica fizic inca circulau biti
pe sarma dupa ce aparea intreruperea de buffer gol).

Bafta,

Radu

On Mon, 2004-08-23 at 10:21, Ioan MANEA wrote:
> Am cateva probleme cu tema 2 in linux (UART16550):
> 
> Desi am instalat cum trebuie modulul (adrese, intreruperi, etc. ), am
> configurat vmware-ul sa "lege" com-urile din linux la cele de pe
> calculator (pe care am pus un null modem testat - in sensul ca m-am
> jucat in draci red alert pe el) intreruperile se genereaza de 4-5 ori
> pentru cele 2 com-uri (in total).
> 
> Adica la initializare, se genereaza pentru fiecare in parte, iar apoi,
> cand scriu ceva in com 1, se genereaza o singura data pentru com2, la
> receptie, si atat!
> 
> Sistemul nu se blocheaza, doar ca nu se mai genereaza intreruperile
> alea deloc.
> 
> Am incercat si sa trimit cate un caracter deodata (nu cate 8 la
> fiecare intrerupere), dar la fel, se genereaza o data la primire pe
> com2, iar pe com1 nu se mai genereaza nimic pentru a trimite, si
> astfel programul toot asteapta.
> 
> As dori niste sfaturi. Adica as dori sa stiu cum ar trebui sa
> configurez com-urile (daca aici ar fi problema), ce trebuie sa fac si
> ce NU trebuie sa fac cand mi se genereaza intreruperile (ma tot
> gandesc ca poate fac ceva gresit in tratarea intreruperii si astfel nu
> mai merg intreruperile).
> 
> Va multumesc.