Источники прерываний и уровни приоритета
CPU08 может располагать до 128 отдельными векторами, включая сброс и программные прерывания (SWI), которые разрешают 126 входов от независимых источников прерываний. См. Табл. 2.
Примечание: Не все версии CPU08 могут располагать полным набором векторов прерываний.
Таблица 2. Векторы HC08
Адрес |
Сброс |
Приоритет |
FFFE |
Сброс |
1 |
FFFC |
SWI |
2 |
FFFA |
IREQ(0) |
3 |
.. |
. |
. |
FF02 |
IREQ(124) |
127 |
FF00 |
IREQ(125) |
128 |
Когда модуль системной интеграции (SIM) принимает запрос на прерывание, обработка прерывания начинается на границе следующей команды. Модуль SIM выполняет декодирование уровня приоритета, если одновременно поступило более одного запроса на прерывание. Кроме того, SIM шифрует запрос на прерывание с наивысшим приоритетом в константе, которую CPU08 использует для генерации соответствующего вектора прерывания.
Примечание: Приоритеты прерываний от различных специальных модулей не всегда совпадают в различных версиях MC68HC08. Подробности о приоритетах прерываний, связанных с различными приборами семейства MC68HC08, изложены в разделах, посвященных модулям SIM, в технических описаниях конкретных приборов.
SWI, как команда, имеет наивысший приоритет, кроме сброса; при выборе операционного кода SWI никакое другое прерывание не может быть обслужено.
Прерывания в режимах STOP и WAIT
В режиме WAIT тактовый сигнал CPU остановлен, но тактовые сигналы других модулей остаются активными. Модули, остающиеся активными в режиме WAIT, могут активировать CPU08 запросом прерывания, если прерывание разрешено. В этом случае обработка прерывания начинается незамедлительно.
В режиме STOP остановлен системный тактовый сигнал. Входы модуля управления системой сконфигурированы так, что они могут быть асинхронными. Часть модулей способна активироваться из режима STOP и, если это предусмотрено в схеме модуля, формировать запрос на прерывание.
|