1. Reset — генерируется при подаче сигнала запуска (подача и снятие сигнала сброса с активным НИЗКИМ уровнем) на вывод процессора nRESET. Процессор переходит в режим Supervisor и начинает выполнение программы с адреса памяти 0x00000000.
2. Data Abort — ошибка при обращении к данным (фиксируется контроллером прерываний, который вырабатывает сигнал активного уровня на выводе процессора ABORT). Процессор переходит в режим Abort. При возникновении исключительной ситуации Data Abort, соответствующие действия ядра зависят от выполняемой в данный момент команды и могут быть следующими:
• Команды индивидуального перемещения данных (LDR, STR) записывают назад модифицированные базовые регистры. Обработчик Data Abort должен учитывать это.
• Команда обмена (SWP) прерывается, не будучи выполненной до конца. (Это произойдет в случае, если исключительная ситуация Data Abort возникла в момент доступа для чтения команды SWP.)
• Команды группового перемещения данных (LDM, STM) завершаются. Когда запись оканчивается, базовый регистр команды модифицируется. Если команда производит перезапись базового регистра «поверх» его модифицированного содержимого (базовый регистр находится в списке перемещаемых регистров команды), ядро ARM7TDMI-S предотвращает перезапись.
• Ядро ARM7TDMI-S предотвращает перезапись всех регистров «поверх» их содержимого, измененного текущей командой, после того, как возникла исключительная ситуация Data Abort. Это означает, что ядро всегда сохраняет R15 (последний из перемещаемых регистров) в прерванной команде LDM.
3. FIQ — генерируется при подаче сигнала прерывания на один из выводов nFIQ процессора. Процессор переходит в режим FIQ. При поступлении данного прерывания, в регистровом банке происходит переключение с регистров R8...R14 на регистры R8_fiq...R14_fiq, что позволяет сократить или исключить операции сохранения содержимого регистров в стеке и за счет этого обеспечить наименьшее время реакции на прерывание.
4. IRQ — возникает при подаче сигнала прерывания на один из выводов nIRQ процессора. Процессор переходит в режим IRQ. Прерывания FIQ имеют более высокий приоритет по отношению к прерываниям IRQ.
5. Prefetch Abort — ошибка при выборке команды (фиксируется контроллером прерываний). Ядро отмечает предварительно выбранную команду как недопустимую, но не генерирует ИС, пока команда не достигает в конвейере стадии выполнения. Если эта команда находится в конвейере, но не выполняется (поскольку ей предшествует команда перехода), то исключительная ситуация Prefetch Abort не возникает. При возникновении исключительной ситуации Prefetch Abort процессор переходит в режим Abort.
6. Undefined instruction — выборка неправильного кода команды. Когда процессор сталкивается с командой, которую ни он, ни какой-либо из сопроцессоров в системе не могут обработать, ядро переходит в режим Undefined. Процессор ARM7TDMI-S, соответствующий архитектуре ARM v4T, генерирует ИС Undefined instruction для всех команд, которые классифицирует как неопределенные. Следует заметить, что опытные программисты могут задействовать этот механизм для того, чтобы включить в систему команд ARM дополнительные пользовательские команды.
НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |