[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