Научная литература
booksshare.net -> Добавить материал -> Физика -> Александров Е.К. -> "Микропроцессорные системы" -> 115

Микропроцессорные системы - Александров Е.К.

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 109 110 111 112 113 114 < 115 > 116 117 118 119 120 121 .. 528 >> Следующая

останова по выборке команды), то поде LENi должно быть равно 00.
31 30 29 28 27 26 25 24 23 2? 21 20 19 1R 17 16 15 14 13 12 10 9 8 7 6
5 4 3 2 1 0
| LbrJJ I K/WJ I ЦЫМ4 | КУУУ4 LFN1 I R/W1 I LFN0 | R L 00 | GD |
001: | GE | LE | G3 | L3 | G2 | L2 | G1 | L1 I | GO | L0 | DR7
31 1615 14 13 12 4 3 2 1 0
I РваервирЬвано * ¦ | ВТ | BS | BD | 011111111 * | вз I В2 |
I В1 [ ВО | DR6
Рис. 2.63. Формат содержимого регистров отладки DR7 (a), DR6 (б)
РЕАЛИЗАЦИЯ ПРЕРЫВАНИЙ И ИСКЛЮЧЕНИЙ. ОБЕСПЕЧЕНИЕ ТЕСТИРОВАНИЯ И ОТЛАДКИ
R/Wi- тип доступа. Двухбитные поля R/W/ определяют тип обращения к
памяти, при котором происходит срабатывание /-й точки останова. Поле R/Wi
может принимать следующие значения:
• 00 - выборка команды;
• 01 - запись данных;
• 10 - чтение или запись порта ввода/вывода (при значении бита DE = 1 в
регистре управления CR4, при DE = 0 значение R/Wi=10 не определено);
• 11 - запись или чтение данных.
Точки останова по выборке команд обрабатываются как ошибки, а точки
останова по обращению к данным - как ловушки. Срабатывание точки останова
при выборке команды происходит только тогда, когда линейный адрес точки
останова указывает на первый байт команды (включая префиксы).
Срабатывание точки останова при обращении к данным или портам
ввода/вывода имеет место, когда заданный адрес операнда полностью или
частично попадает в область срабатывания точки останова (область
определяется регистром DR/ и полем LENi в регистре DR7).
GD - идентификация обращений к регистрам отладки. Когда установлено
значение бита GD = 1, то обращение к регистрам отладки приводит к
исключению #DB. В этом случае перед реализацией исключения #DB в регистре
состояния DR6 устанавливается значение бита BD = 1, а бит GD сбрасывается
в "0", что дает возможность обработчику исключения #DB обращаться к
регистрам отладки.
GE, LE - не используемые (резервированные) биты, которые рекомендуется
устанавливать в "1".
Gi - разрешение глобальных точек останова. Установка этого бита разрешает
срабатывание соответствующей контрольной точки во всех задачах. Если
выполняется условие срабатывания i-й контрольной точки (определенное
регистром DRi и полями LENi, R/Wi в регистре DR7) и установлено значение
бита Gi = 1, то реализуется исключение #DB. Бит Gi не изменяется при
переключении задач.
Li - разрешение локальных точек останова. Установка этого бита разрешает
срабатывание соответствующей контрольной точки в текущей задаче. Если
выполняется условие срабатывания /-й контрольной точки и значение бита
L/' = 1, то реализуется исключение #DB. Бит U автоматически сбрасывается
в "0" при переключении задач.
Так как точки останова по выборке команды обрабатываются как ошибки, то
после возврата из подпрограммы обработки процессор снова попытается
выполнить команду, на которую установлена точка останова, и снова будет
реализовано исключение #DB. Для предотвращения такого зацикливания на
одной точке останова в архитектуре процессора предусмотрен признак RF в
регистре EFLAGS. Когда установлено значение RF = 1, то процессор
игнорирует точки останова по выборке команды. Значение флага RF не
оказывает влияния на срабатывание точек останова по выборке данных или
точек останова по операциям ввода/вывода. Процессор автоматически
устанавливает флаг RF = 1 перед вызовом любого исключения-отказа, кроме
#DB, которое было вызвано точкой останова по выборке команды. Программа-
обработчик исключения #DB может либо запретить точку останова, либо
установить значение признака RF = 1 в содержимом регистра EFLAGS,
хранящемся в стеке. При возврате из обработчика команда IRETD восстановит
значение признака RF из хранящегося в стеке содержимого регистра EFLAGS.
Команды POPF, POPFD и IRET не изменяют значение RF. После возврата
повторной генерации исключения #DB не произойдет, так как значение
признака RF = 1. Процессор автоматически устанавливает значение RF = 0
после выполнения любой команды, кроме команды IRETD и команд JMP, CALL,
INT п, которые вызывают переключение задач. Процессор не устанавливает
признак RF перед вызовом исключений-ловушек, аппаратных или программных
прерываний.
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ
Регистр состояния DR6 содержит информацию, которая указывает причину
последнего исключения отладки #DB. Отдельные биты содержимого DR6 имеют
следующее назначение:
ВТ-ошибка при переключении задач. Принимает значение ВТ = 1, если
исключение #DB имело место из-за переключения на задачу, имеющую бит Т =
1 в сегменте TSS. Исключение #DB происходит после выполнения первой
команды в новой задаче. Если исключение #DB обрабатывается через шлюз
задачи, то бит Т в сегменте TSS обработчика должен иметь значение "1".
BS - реализация пошагового режима отладки. Принимает значение BS = 1,
если исключение #DB имело место из-за установленного значения признака TF
= 1 в регистре EFLAGS. Исключение пошагового режима самое приоритетное
среди исключений отладки. Вместе с битом BS может быть установлен любой
Предыдущая << 1 .. 109 110 111 112 113 114 < 115 > 116 117 118 119 120 121 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed