![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Система приоритетов для исключений
Среди представленного множества событий, которые могут вызвать исключения, ряд событий обладают большей значимостью для системы, чем другие. В микропроцессорной технике значимость события характеризуют термином «приоритет». События большей значимости обладают более высоким приоритетом. Рассматривая множество исключений для 68HC12/HCS12, можно отметить, что все немаскируемые источники исключений по умолчанию наделены более высоким приоритетом, нежели маскируемые. Поэтому, если в один и тот же момент времени поступят два запроса, то первым будет обслужен немаскируемый запрос, который обладает более высоким приоритетом. Затем будет выполнена подпрограмма обслуживания запроса с низшим приоритетом, в нашем случае этот запрос маскируемый. Немаскируемые запросы исключений также ранжируются по приоритету. В приведенном ниже списке приоритет событий снижается с увеличением номера записи: 1. Внешний сброс по входу или сброс по нарастанию напряжения питания POR; 2. Сброс по монитору системы тактирования; 3. Сброс по переполнению сторожевого таймера COP; 4. Программное прерывание SWI; 5. Немаскируемое прерывание по входу . Очередность приоритетов маскируемых прерываний отображена на рис. 4.17. Чем выше строка источника события в таблице векторов, тем выше его приоритет. Однако приоритет маскируемого прерывания может быть повышен посредством записи соответствующей комбинации битов в регистр уровня приоритета HPRIO. Код, который следует записать в регистр HPRIO для назначения выбранному источнику запросов наивысшего приоритета среди маскируемых прерываний, приведен в последней колонке таблицы рис. 4.17. Следует помнить, что изменение кода в регистре HPRIO возможно только при единичном значении глобальной маски прерываний I, т.е. когда маскируемые прерывания запрещены. После повышения уровня прерывания какого либо запроса остальные источники запросов сохраняют приведенное в таблице векторов прерываний рис. 4.17 распределение приоритетов.
Вопросы для самопроверки
1. Какой код должен быть записан в регистр HPRIO, чтобы приоритет прерывания от аналого-цифрового преобразователя стал наивысшим среди маскируемых прерываний? Ответ: Код $D2 следует записать в регистр уровня приоритета HPRIO. 2. Приведите запись выражения на Си, которое реализует действие вопроса 1. Ответ: HPRIO = 0xD2 3. Как изменятся приоритеты немаскируемых и маскируемых исключений после изменения приоритета прерывания от модуля АЦП в результате действий вопроса 1 или 2? Ответ: Приоритеты немаскируемых исключений останутся без изменения. Приоритеты все маскируемых прерываний, кроме АЦП, понизятся на один уровень, но при этом по отношению друг к другу их приоритеты не изменятся. 4. Какие действия должен предпринять программист, чтобы после начального запуска МК присвоить входу наивысший приоритет среди маскируемых прерываний? Ответ: Никаких. В соответствие с таблицей приоритетов на рис. 4.17 вход автоматически имеет наивысший приоритет среди маскируемых запросов.
|