Предыдущая Следующая

7. Software interrupt — программное прерывание по команде SWI. Процессор переходит в режим Supervisor. Программные прерывания используются, как правило, для вызова функций ОС.

Вектора прерываний располагаются в памяти последовательно, начиная с адреса 0x00000000 (вектор Reset), как показано в Табл. 1.18. Каждый вектор содержит 4 байта — адреса первой команды соответствующего обработчика прерывания:

Следует заметить, что в Табл. 1.18 отсутствуют вектора прерываний по запросам внешних устройств. Дело в том, что микроконтроллеры, реализуемые на базе ядра ARM7TDMI-S, как правило, имеют довольно значительное количество периферийных устройств, поэтому в состав микроконтроллера входит специальный контроллер прерываний, задачей которого является трансляция запроса от любого периферийного устройства в запрос IRQ или FIQ. После такой трансляции программа-обработчик должна самостоятельно определить источник запроса, используя регистры контроллера прерываний.

Исключительные ситуации Undefined instruction и SWI являются взаимоисключающими. Когда декодирована команда SWI, исключительная ситуация Undefined instruction не может быть сгенерирована, и наоборот.

Если разрешенное прерывание FIQ и прерывание Data Abort возникают одновременно, ядро ARM7TDMI-S сначала запускает обработчик ИС Data Abort, а затем немедленно передает управление на вектор FIQ. После нормального возвращения из FIQ управление вновь передается обработчику Data Abort. Такой порядок действий установлен для того, чтобы обеспечить прерыванию Data Abort более высокий приоритет, чем любым прерываниям FIQ. Что, в свою очередь, гарантирует, что ошибка перемещения данных всегда будет обнаружена системой. Таким образом, разработчик (программист) должен прибавлять к ожидаемому времени реакции FIQ время, необходимое на запуск обработчика Data Abort.

1.4.6. Время реакции на прерывания

Время реакции на прерывания в микропроцессорной системе критично, как правило, только для быстрых прерываний FIQ. Значение времени реакции лежит в некотором возможном диапазоне, т. е. может быть максимальным и минимальным. Когда прерывания FIQ разрешены, максимальное время реакции на FIQ (для самого «плохого» случая) складывается из:

• Tsyncmax — наиболее длительное время запроса, которое может потребоваться на реакцию синхронизатора. Это время составляет два процессорных цикла;

• Tldm — время, требующееся для завершения самой длинной команды. (Самая длинная команда — LDM, которая загружает все регистры, включая PC.) TIdm равно 20 процессорным циклам в системе с нулевым временем ожидания;

• Техс — время входа в обработчик Data Abort. Оно составляет три процессорных цикла;

• Tflq — время входа в обработчик FIQ. Оно составляет два процессорных цикла.

Таким образом, полное время ожидания для самого «плохого» случая составляет 27 циклов процессора, что немного меньше 0.7 мкс в системе с тактовой частотой процессора 40 МГц.


Предыдущая Следующая






Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book4_33.html on line 116

Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book4_33.html on line 116

Warning: include() [function.include]: Failed opening './news.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/picprof/data/www/picprof.com/book/book4_33.html on line 116