Что такое типичное внешнее прерывание на процессоре руки?
Чем это отличается от обычного прерывания данных и прерывания предварительной выборки?
Как он информирует приложение о внешнем прерывании?
Что такое типичное внешнее прерывание на процессоре руки?
Чем это отличается от обычного прерывания данных и прерывания предварительной выборки?
Как он информирует приложение о внешнем прерывании?
обычно процессор ARM поставляется с сопроцессором, одним из его сопроцессоров является cp15, который действует как MMU.
Если есть какой-либо такой виртуальный адрес, для которого MMU не может найти какую-либо страницу или сталкивается с ошибкой преобразования, называемой отказом от данных или предварительной выборки, зависит от соответствующего пути (I-кэш или D-кэш).
http://infocenter.arm.com/help/index.jstopic=/com.arm.doc.ddi0438d/BABFFDFD.html
Предположим, вы столкнулись с таким виртуальным адресом, который имеет действительный физический адрес в отображении, но сам физический адрес недействителен (или адрес принадлежит безопасному миру, т.е. доверенной зоне), системная шина в этом случае вызовет прерывание, потому что это не сможет декодировать физический адрес.
Проще говоря, все прерывания, которые не будут обнаружены MMU, называются внешними прерываниями, и приложение будет уведомлено сигналом SIGBUS.
Что такое типичное внешнее прерывание на процессоре руки?
Типичное внешнее прерывание связано с аппаратным обеспечением. Пользовательский процесс обычно не может вызвать это. Типичными причинами являются отсутствие включения часов для модуля SOC и/или инициализация зависимых блоков SOC (конфигурация шины, мультиплексирование контактов и т. д.). Это также произойдет с TrustZone при доступе к защищенной памяти (т.е. к защищенной памяти из обычного мира).
Чем это отличается от обычного прерывания данных и прерывания предварительной выборки?
Обычный сброс данных и предварительная выборка используют память, не отображаемую MMU. Внешнее прерывание отображается, но когда ЦП выполняет цикл шины, периферийное устройство по физическому адресу не отвечает (или отправляет ошибку обратно в ЦП).
Как он информирует приложение о внешнем прерывании?
Поскольку внешнее прерывание означает некоторую внешнюю по отношению к ЦП (также называемую аппаратным обеспечением), обычно не бывает, чтобы приложение получило внешнее прерывание. Приложение не должно иметь дело с оборудованием напрямую.