[pso] [Tema2][Windows] Disable RDAI Interrupt

Macicas Teodor teodor.macicas at cti.pub.ro
Fri Apr 23 17:40:57 EEST 2010



Andrei Voinescu wrote:
> 2010/4/23 Macicas Teodor <teodor.macicas at cti.pub.ro>:
>   
>> Salut,
>>
>> Am o problema cu dezactivarea intreruperii RDAI atunci cand buffer-ul read
>> este plin.
>> Apelez WRITE_PORT_UCHAR((PUCHAR) IER(data->base), READ_PORT_UCHAR((PUCHAR)
>> IER(data->base)) & ~IER_RDAI ); in ISR. Tester-ul se blocheaza imediat dupa
>> ce bufferul read este plin si se face aceasta dezactivare.
>>
>> Aveti vreo idee de ce se intampla asta ?
>>     
> Și dacă nu dezactivezi întreruperea dar dai discard la caracterele
> care mai vin ce se întâmplă?
>   

Dupa ce am comentat dezactivarea intreruperii si am incercat sa fac un 
READ_PORT_ a inghetat tot sistemul - fara BSOD.
Ceea ce mi se pare amuzant, e ca daca pur si simplu fac doar un 'break' 
din while-ul din ISR cand buffer-ul read este plin, toate testele, 
inclusi imi trec. Fara sa ma chinui in vreun fel cu dezactivarea 
intreruperii RDAI. Exista vreo explicatie pentru asta ?

Tin sa precizez ca buffer-ul meu este, intentionat, f mic - 20char 
pentru si se ajunge de multe ori in situatia cand este plin. N-ar fi 
trebuit ca acele intreruperi netratate sa ma conduca la pierderea unor 
caractere ?!

Multumesc.
-Teodor


More information about the pso mailing list