|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Alex Korchmar 2:5020/400 16 Mar 2003 22:49:48 To : Mihail Badin Subject : Re: Мультяха -------------------------------------------------------------------------------- Mihail Badin <emailaddr@comail.ru> wrote: MB> те раньше было так: как раньше - мне посмотреть сейчас негде, но было нехорошо. MB> а стало MB> 1)по остальным битам выясняем причину прерывания не-а. Стало iir = serial_in(info, UART_IIR); do { status = serial_inp(info, UART_LSR); ... [тут где-то оно еще раз iir считывает] ... } while ((iir & UART_IIR_NO_INT) == 0); короче- хоть один раз оно проворачивается в любом случае, по дороге читая LSR, тем самым сбрасывая всю глюкомеханику, завязанную на его изменения во время обработки, а значение из iir кроме младшего бита использует "чтоб было, что выбросить". Плюс там проверка на не более 255 циклов. Hо это, подчеркиваю, версия, которая без irq sharing. Которая с - мутная и подозрительная. Копаться лень. > Alex --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/65778427f943.html, оценка из 5, голосов 10
|