[quote name='серый волк' date='Aug 29 2007, 16:27' post='288617']
Александр,
я правильно понимаю...
если у меня идет выполнение IRQ и в процессе выполнения приходит SWI ,
[/quote]
SWI Вы вызываете сами. По выходу из прерывания IRQ в режим USER, SWI выполнится.
[quote name='серый волк' date='Aug 29 2007, 16:27' post='288617']
Александр,
я правильно понимаю...
если у меня идет выполнение IRQ и в процессе выполнения приходит SWI ,
то выполнение IRQ прерывается и начинается выполнение SWI. Потом заканчивается выполнение
IRQ. Это верно?
[/quote]
Нет. См. выше.
quote name='серый волк' date='Aug 29 2007, 16:27' post='288617']
Александр,
я правильно понимаю...
если у меня идет выполнение IRQ и в процессе выполнения приходит SWI ,
то выполнение IRQ прерывается и начинается выполнение SWI. Потом заканчивается выполнение
IRQ. Это верно? И наоборот судя по Вашим словам невозможно.
Сергей
[/quote]
Не приписывайте мне,что я не говорил. SWI ничем не прерывается. Это SuperVisor.
quote name='серый волк' date='Aug 29 2007, 16:27' post='288617']
Из таблицы приоритетов кстати IRQ имеет более высокий приоритет чем SWI
Тут скорее всего надо различать стуации возникновения двух прерываний одновременно
[/quote]
Да, при одновременном приходе заявок на прерывание выполняется прерывание с более высоким приоритетом.
[quote name='серый волк' date='Aug 29 2007, 16:27' post='288617']
Тут скорее всего надо различать ..., когда один произошел и уже выполняется...
Можно ли как-нить это прояснить....
[/quote]
Проясняю для IRQ и FIQ, т.к. они выполняются через векторный контроллер (я говорю про LPC) при входе и выходе вставляются макросы. Смысл их: корректно разрешить прерывание и корректно запретить, но уже спасение и восстановление осуществляется через стек, т.к. без стека возможен только один уровень. Тогда внутри IRQ может быть еще один IRQ.
[quote name='серый волк' date='Aug 29 2007, 16:27' post='288617']
Спасибо
Сергей
[/quote]
Вежливому человеку всегда рад помочь, если не в напряг.