[pso] Reply - Problema transmitere pe seriala
Adrian - Razvan Deaconescu
pso@cursuri.cs.pub.ro
Mon, 4 Apr 2005 23:16:46 +0300
> Pentru date putine merge bine, dar daca vreau sa trasmit un vector de lungime
> mare (De ex 2048 ca si in test) mi se pare ca se pierd anumite numere pentru ca > la clear_in sau la read gasesc un numar mai mic de elemente (mai mic cam cu
> 100) si astfel se blocheaza read.
> A mai avut cineva o problema asemanatoare? Se poate sa se piarda intreruperi?
E aproape sigur ca pierzi intreruperi. O problema asemanatoare aveam
si eu (mie doar uneori nu-mi mergea) si se datora unui fel de
busy-waiting in intrerupere.
DECI, nu uita ce se zice la curs, in carti, peste tot: rutinele de
tratare a intreruperilor trebuie sa fie cat mai SCURTE, deci cat mai
rapide; altfel risti sa pierzi intreruperi, ceea ce ti s-a intamplat
tie aici. Ai grija sa nu ai un fel de asteptare dupa date sau ceva
asemanator in rutina ta de tratare a intreruperii. Daca dureaza prea
mult, pierzi intreruperea RDA (Received Data Available Interrupt) si
pierzi unii octeti transmisi. Fa o analiza atenta a rutinei si vezi
unde se poate sa dureze prea mult.
Spun asta pentru ca si eu am patit, cum am mai spus, ceva asemanator
si tind sa cred ca acelasi lucru l-ai patit si tu, dar nu bag mana in
foc :-).
In alta ordine de idei, vreau sa stiu si eu cum pot sa fac un reply la
un mesaj ca sa apara frumos sub celalalt. Eu am dat copy-paste in
mail-ul de fata :-(.
Razvan