Недавно я задал этот вопрос. Я изучаю архитектуру ARM, и я попытался ее исследовать, но я чувствую, что у меня нет правильного ответа.Почему в ARM есть 2 регистра для включения/выключения прерываний вместо 1?
Моя идея заключается в том, что основная причина заключается в том, чтобы избежать беспорядка с текущими прерываниями, мы используем регистры с включенным набором разрешений для включения всех прерываний и регистров с явным разрешением для отключения всех прерываний.
Это правильная причина? Есть ли более глубокое объяснение этому? Есть ли какой-то документ, объясняющий это дизайнерское решение?
EDIT: К сожалению, чип я работаю является Cortex M4
Какие регистры, а тем более, какая архитектура? Что касается архитектуры A/class/legacy, в одном регистре есть только два _bits_ (один для отключения каждого типа прерываний), вот и все. Архитектура M-класса немного отличается и включает в себя собственно контроллер прерываний, но по существу это просто PRIMASK. Или есть какая-то путаница в игре между контролем того, прерывается ли CPU _takes_, а не то, являются ли они _генерированными в первую очередь? – Notlikethat