October 18 2017 03:02:17
Навигация
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации .

Забыли пароль?
Запросите новый здесь.
МОДУЛЬ ПРЕРЫВАНИЯ ПО КОНТРОЛЬНЫМ ТОЧКАМ BREAK08
МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА НС08

Модуль Break08 предназначен для организации механизма останова по контрольным точкам в процессе отладки программы пользователя. Модуль позволяет организовать этот процесс таким образом, что прикладная программа между двумя точками останова будет выполняться в реальном времени, что чрезвычайно важно при отладке программ управления быстродействующими объектами.

img039

На Рис. 3.24 представлена структурная схема, поясняющая принцип действия модуля отладочных прерываний Break08. Выбранный пользователем 16-битный адрес точки контрольного останова записывается под управлением программы монитора отладки в регистр адреса модуля BRKH...BRKL (BRKH - старший байт адреса контрольной точки, BRKL - младший байт). Код с выхода этих регистров подключен к одному из входов цифровых компараторов КН и KL. На вторые входы этих компараторов поступают коды старшего и младшего байтов магистрали адреса МК. Выходы компараторов объединены по логике И. Сигнал BREAK устанавливается в активное состояние, когда код на внутренней магистрали адреса МК становится равным коду в регистрах BRKH и BRKL Этот сигнал поступает в модуль сис­темной интеграции SIM08. Если работа модуля прерываний по кон­трольным точкам разрешена, то генерируется BREAK прерывание и МК переходит в режим обработки прерывания по контрольной точке (Break mode). Механизм процесса перехода следующий:

• Центральный процессор завершает выполнение текущей команды.

• В регистр команд центрального процессора загружается код команды программного прерывания SWI, и процессор переходит по вектору прерывания, который записан в ячейках памяти с адресами $FFFC и $FFFD, если МК находился в рабочем режиме (Run mode), или $FEFC и $FEFD, если МК находился в отладочном режиме работы (Monitor mode).

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

Внимание! Подпрограмма обработки Break-прерывания должна быть написана пользователем в соответствии с общими правилами для обслуживания обычных прерываний. Подпрограмма обработки Break-прерывания должна обязательно завершаться командой возврата из прерывания RTI.

Во время обработки прерывания по контрольной точке (Break mode) периферийные модули МК имеют следующие особенности функционирования:

* Останавливаются счетчики таймерных модулей TIM08.

* Останавливается счетчик сторожевого таймера СОР, если на выводе ØRST присутствует напряжение VTST (см. п. 3.5.8).

Остальные периферийные модули в режиме BREAK остаются работоспособными.

Если в подпрограмме обработки Break-прерывания использованы команды WAIT или STOP, то МК перейдет в один из указанных режимов. Если же последней командой перед BREAK прерыванием была команда WAIT, то МК перейдет в режим ожидания. Однако сразу последует Break-прерывание, которое вызовет возврат МК в активный режим (Run mode), и подпрограмма обработки прерывания по контрольной точке будет выполнена.

Внимание! Адрес возврата из подпрограммы обработки Break-прерывания будет в этом случае содержать адрес команды, следующей за командой WAIT. Поэтому при выходе из подпрограммы обработки Break-прерывания естественный ход прикладной программы будет нарушен и возврата к режиму ожидания не произойдет. Для исключения описанной ситуации в МК предусмотрена установка бита BW в регистре SBSR модуля системной интеграции SIM08. Бит BW может быть считан в подпрограмме обработки Break-прерывания, и при его равенстве 1 содержимое указателя стека SP будет скорректировано таким образом, чтобы из подпрограммы произошел возврат к команде WAIT. Тогда естественный ход прикладной программы не будет нарушен.

Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.

Нет данных для оценки.

Время загрузки: 0.02 секунд 2,255,005 уникальных посетителей