Содерживмое регистра VICDefVectAddr используется : а. для загрузки VICVectAddr если совершившееся прерывание не векторное и не быстрое fiq б. для прямого вызова спуриос обработчика прерываний
В случае а. Если мы собираемся вызвать функцию невекторного прерывания (из обработчика прерываний чей адрес записан в таблице векторов) ее декларация будет записываться в простом виде без атрибутики __irq.
В случае б. приведена однозначная декларация с приведенным выше аттрибютoм (как описывается в ан10414), так как при спуриос вызов пойдет напрямую в обход обработчика irq прерываний
Почему такая двухсмысленность в исполнении или это только моя фантазия?
Второй вопрос - нужно ли при невекторных и fiq быстрых прерываниях записывать что нибудь в VICVectAddr , для сброса контроллера перед выходом из обработчика прерываний?
--------------------
Зачем лаять на караван , когда на него можно плюнуть?
|