Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Пользователю -> Евстифеев А.В. -> "Микроконтроллеры семейства" -> 36

Микроконтроллеры семейства - Евстифеев А.В.

Евстифеев А.В. Микроконтроллеры семейства — Infineon, 2007. — 318 c.
Скачать (прямая ссылка): microkontrolleri2007.pdf
Предыдущая << 1 .. 30 31 32 33 34 35 < 36 > 37 38 39 40 41 42 .. 100 >> Следующая


Примечание: Уровень ЦПУ в регистре PSW не изменяется после использования команды TRAP, поэтому подпрограмма обслуживания выполняется на том же уровне приоритета, что и основная программа. Таким образом, подпрограмма обслуживания, выполняемая по команде TRAP, может быть прервана другой ловушкой или прерыванием с более высоким уровнем приоритета.

Аппаратные ловушки

Аппаратные ловушки являются следствием ошибок либо особых состояний системы, который могут происходить во время выполнения программы. Аппаратные ловушки можно также совершать преднамеренно, т.е. вводя некорректный код, и при этом генерируется ловушка неправильного программного кода. C167 различает восемь различных функций аппаратных ловушек. При обнаружении состояния аппаратной ловушки, ЦПУ переходит по адресу вектора данной ловушки. В зависимости от состояния обнаруженной ловушки, вызвавшая ее команда может быть либо завершена либо не завершена, прежде чем будет введена подпрограмма обслуживания ловушки.

Аппаратные ловушки - не маскируемы и всегда имеют уровень приоритета выше, чем какое-либо другое состояние ЦПУ. В случае определения в одном и том же командном такте нескольких состояний аппаратных ловушек, будет обслужена аппаратная ловушка с наивысшим уровнем приоритета (см. таблицу в подразделе «Cтруктура системы прерываний»).

Одержимое регистров PSW, CSP (в режиме сегментированной памяти) и IP сохраняется во внутреннем системном стеке, и уровень ЦПУ устанавливается в максимально возможное значение уровня приоритета (т.е. 15 уровень), при этом запрещаются все прерывания. В режиме включенной сегментации CSP выставляет нулевой сегмент кода. Подпрограмма обслуживания ловушки завершает свою работу по команде RETI.

Восемь функций аппаратных ловушек подразделяется на два класса:

Класс А ловушек содержит

• внешнее не маскируемое прерывание NMI

• переполнение стека

6-26 МЭИ, Центр Промышленной Электроники Фирмы Infineon

Система прерываний и ловушек/С167

• underflow стека Эти ловушки делят между собой один уровень приоритета, при этом

каждая имеет индивидуальный вектор адреса

Класс В ловушек содержит

• Неопределенный программный код

• Ошибку защиты

• Неправильный доступ к операнду слов

• Неправильный командный доступ

• Ловушка неправильного доступа к внешней шине

Эти ловушки имеют один и тот же уровень приоритета, и одинаковый адрес вектора.

Адресуемый побитно регистр флагов ловушек (TFR) позволяет подпрограмме прерывания определить тип случившейся ловушки. Каждая функция ловушки указывается с помощью независимого флага. При совершении аппаратной ловушки, устанавливается в «1», связанный с ней флаг в регистре TFR.

SFR

TFR (FFAC+/D6+) Значение после RESET: 0000+

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

МП/II STK STK UND PRT ILL ILL ILL
NMI OV UF OPC FLT OPA INA BUS

rwrwrw - - - - - rw - - - rwrwrwrw

Бит Функция
ILLBUS Флаг неправильного доступа к внешней шине Попытка внешнего доступа с неопределенной внешней шиной
ILLINA Флаг неправильного командного доступа Попытка перехода к нечетному адресу
ILLOPA Флаг неправильного доступа к слову операнда Попытка доступа (чтения или записи) по нечетному адресу слова операнда
PRTFLT Флаг ошибки защиты Обнаружение защищенной команды в неправильном формате
UNDOPC Флаг неопределенного программного кода Текущая декодируемая команда не является командой C167
STKUF Флаг underflow стека Текущее значение указателя стека превышает содержимое регистра STKUN

6-27 МЭИ, Центр Промышленной Электроники Фирмы Infineon

Система прерываний и ловушек/С167

Бит Функция
STKOF Флаг переполнения стека
Текущее значение указателя стека меньше содержимого
регистра STKOV
NMI Не маскируемый флаг прерывания
Определение отрицательного фронта на выводе NMI

Примечание: Подпрограмма обслуживания ловушки должна очистить флаг, вызвавшей ее, ловушки, в ином случае будет произведен новый запрос на обслуживание ловушки после выхода из подпрограммы обслуживания. Программная установка флага запроса ловушки приводит к эффекту, аналогичному аппаратной установки ловушки.

Функции RESET (аппаратные, программные, от сторожевого таймера) могут быть отнесены к типу ловушек. Функции RESET имеют высочайший системный приоритет (уровень приоритета ловушек III).

Ловушки класса А имеют второй уровень приоритета, в третьей категории находится класс В ловушек, и поэтому класс А ловушек может прервать класс В. Если одновременно случается больше одной ловушки класса А, происходит внутреннее распределение по приоритетам, при этом NMI ловушка имеет высочайший приоритет, а ловушка underflow стека имеет наименьший уровень.

Все ловушки класса В имеют одинаковый уровень приоритета (уровень I). При одновременном активизировании нескольких ловушек класса В, устанавливаются соответствующие флаги в регистре TFR, и начинается обслуживание подпрограммы ловушки. Поскольку все ловушки класса В имеют один и тот же вектор, то одновременных ловушек класса В, определяется программно во время выполнения подпрограммы обслуживания.
Предыдущая << 1 .. 30 31 32 33 34 35 < 36 > 37 38 39 40 41 42 .. 100 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100