Цитата(Andy Mozzhevilov @ Jun 6 2006, 06:41)

Может не понял вопроса, но по моему просто запретить, а потом разрешить. Можно запрещать прерывания глобально, либо только конкретное прерывание в контроллере прерываний.
После разрешения прерывания оно активируется, если соответсвующий флаг наличия прерывания
в регистре периферии будет установлен.
Или поясните, почему эта схема не работает, по вашему мнению?
C удовольствием! Бьюсь уже... счёт дням потерял.
Глобальное запрещение не пройдёт - в проекте крутятся ещё помимо DBGU и USART устройства на SPI, Timers, RTT. А впоследствии будут "прикручены" PDC, PIT, USB и ADC.
Конкретное прерывание запрещать пробовал и в AIC, и непосредственно в DBGU, но байты по прежнему теряются, из чего я делаю вывод, что после их обратного разрешения, прерывания по установившимся флагам не срабатывают. В документации на AT91SAM7S соответствующего пункта я не нашёл

Например в документации по AVR сказано, что
Цитата
Writing this bit to one enables interrupt on the RXC Flag. A USART Receive Complete interrupt will be generated only if the RXCIE bit is written to one, the Global Interrupt
Flag in SREG is written to one and the RXC bit in UCSRA is set.
Тоесть при совпадении всех трёх событий вырабатывается прерывание. Хоть явно и не описано, что при срабатывании последнего неслучившегося из трёх события генерится прерывание, так происходит на самом деле - проверено, и очередь работает как говорится без сучка, без задоринки.
Здесь же какая-то засада, и как именно нужно запрещать-разрешать прерывания, остаётся неясно.