Включение внешних прерываний на процессоре ARM

ОтCortex-R справочное руководство, вероятно, не специфичный для Cortex-R

Асинхронная маскировка прерывания

Природа асинхронных прерываний означает, что они могут происходить, пока процессор обрабатывает другое прерывание. Если в такой ситуации асинхронный прерывание создает новое исключение,r14_abt а такжеSPSR_abt значения перезаписываются Если это происходит до того, как данные помещаются в стек в памяти, информация о состоянии первой отмены теряется. Чтобы этого не происходило, CPSR содержит бит маски, A-бит, чтобы указать, что асинхронный прерывание не может быть принято. Когда бит A установлен, любая происходящая асинхронная остановка удерживается процессором в ожидании до тех пор, пока бит A не будет очищен, когда фактически будет принято исключение. Бит A устанавливается автоматически при отмене прерываний, исключений IRQ или FIQ и при сбросе. Вы должны очищать A-бит в обработчике прерывания только после того, как информация о состоянии либо была помещена в память, либо больше не требуется.

Мой вопрос, если у меня естьA немного замаскированы после сброса, как я могу знать, еслиасинхронный прерывание находится на рассмотрении? Можно ли очистить ожидающие внешние прерывания без снятия маскиA немного и принимая исключение? Или, в более общем смысле, есть ли совет по очисткеA немного после сброса?

Очевидно что-то в моей текущей цепочке загрузки имеет ожидающий внешний прерывание (но только после жесткого включения). Я хотел бы включить внешние прерывания, но это кажется довольно громоздкимособый случай первыйвнешнее прерывание в коде исключения.

Ответы на вопрос(1)

Ваш ответ на вопрос