Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
А непосредственно *до* этого что происходит? 22.09.03 12:04 Число просмотров: 1462
Автор: amirul <Serge> Статус: The Elderman
|
> Я почему про ФИФО подумал - я ведь точно не знаю как оно > работает, потому что документация под руки не попадалась. Если ты его не проинициализируешь - оно работать вообще не будет :-)
> Думал, что наступает ситуация, когда должно возникнуть > прерывание, но первое еще не обработано. Оно (второе) > встает в очередь. После обработки первого нужно проверить > очередь на наличие в нем отложенного прерывания, а я этого > не делаю - не знаю как. Завершаю обработку первого и выхожу Так и есть. Чтобы проверить наличие отложенного прерывания надо прочитать IIR еще раз. То есть делать это в цикле пока бит 0 не станет в 1.
> > identification register) остается в 0 и прерывание не > > приходит, так как считается, что до сих пор > обрабатывается > > старое. > > А вот здесь чуть поподробнее. Приоритеты прерываний в порядке убывания следующие: RLS, RDA, CTI, THR, MS. А теперь по русски:
RLS - Line error
RDA - Char received
CTI - Timeout (только для FIFO)
THR - Char transmitted
MS - Modem status changed
Как сбрасываются ты знаешь. После сброса прерывания с более высоким приоритетом нужно проверить нет ли прерывания с меньшим. Для этого нужно повторно прочитать IIR.
|
|
|