Это просто архитектурное решение.Большим преимуществом нескольких режимов является то, что у них есть несколько зарегистрированных регистров.Эти дополнительные регистры позволяют вам писать намного менее сложные подпрограммы исключений.
Если бы вы выбрали только два, просто USR и SYS, вероятно, так же хороши, как и любой другой, но что произойдеткогда ты взял исключение?Обычная модель ARM состоит в том, чтобы перейти в режим исключения, установить регистр банковских ссылок для этого режима исключения так, чтобы он указывал на инструкцию, к которой вы хотите вернуться после разрешения исключения, сохранить состояние процессора в регистре SPSR режима исключения, а затемперейти к вектору исключения.USR и SYS делят все свои регистры - используя эту модель, вы будете сбрасывать адрес возврата вашей функции (в LR) каждый раз, когда вы выполняете прерывание!
В частности, в режиме FIQ регистры с большим количеством банков, чем вдругие режимы исключений.Эти дополнительные регистры соответствуют "F" части FIQ - это означает "Fast".Отсутствие необходимости сохранять и восстанавливать больше контекста процессора в программном обеспечении ускорит работу вашего обработчика прерываний.