Цитата(defunct @ Feb 27 2006, 05:41)

я не говорю, что неправильно ...
Давайте по порядочку.
Цитата
Использование вложенных прерываний значительно усложняет структуру программы
Разве? По мне, так наоборот упрощает. Особенно когда прерывание занимает некоторое время, в течение которого может произойти событие, которое необходимо наверняка обработать. В простейшем случае нужно лишь увеличить соответствующий стек.
Цитата
и требует особой внимательности при проектировании программы
Не надо сгущать краски, любая программа требует внимательности! Точка.
Цитата
Любая неточность при проектировании может привести к тому, что устройство, выполнение обработчика прерывания которого было отложено на случайной команде, может сгенерировать уже следующее прерывание.
Согласен. Но кто мешает написать обработчик, который не допустит срабатывание другого прерывания на СЛУЧАЙНОЙ команде?? Соответственно, пишем код грамотно.
Цитата
похоже и имеет место у уважаемого Master 'a
Спасибо за уважение. Однако мой случай несколько разнится с обсуждаемым. Моя проблема состоит в том, что программа работает, прерывания происходят, входные сообщения UART'а обрабатываются, но через некоторое время прерывания перестают обрабатываться, и дело, как выяснилось, не во вложенности - проверил путём запрещения прерываний перед выполнением функции внутри обработчика прерывания:
вместо
Код
msr CPSR_c, #ARM_MODE_SYS
сделал
Код
msr CPSR_c, #I_BIT | ARM_MODE_SYS
Возможно, стоит создать отдельную ветку...