Лекция: Монитор микропроцессорной системы

1. Общие сведения

Под монитором обычно понимают бесконечную программу, которая ожидает команд от оператора, от сети, в общем случае от объектов, и выполняет эти команды.

Такие программы в простейших системах называют мониторами. Они организуют взаимодействие микропроцессорной системы с внешним миром с целью выполнения своих функций. Усложненные мониторы могут выполнять различные действия, например, загружать и изменять программу, организовывать точки останова в программе (мониторы-отладчики). Такие большие управляющие программы в больших системах превращаются в операционные системы.

 

2. Монитор учебного модуля

Рассмотрим распределение памяти в учебном модуле.

216

 
Программа пользователя
 
 
Монитор

Внешнее ОЗУ

 

Внутреннее ОЗУ
0

Во внутреннем ПЗУ располагается монитор-загрузчик. В принципе во внутреннем ПЗУ можно было бы разместить и некоторые процедуры, сделать аналог BIOS.

Кроме внутреннего ПЗУ процессору доступно внешнее ОЗУ и во внешнее ОЗУ процессор может писать данные и читать данные, которые он получает от внешнего компьютера. То есть процессор использует ОЗУ как память данных.

Второй режим использования ОЗУ это режим памяти команд, то есть когда коды, извлекаемые оттуда, трактуются как команды. Для выполнения своих функций, для адресации внешней памяти монитору нужны некоторые системные переменные — mData — 1 байт, mAddress — 2 байта. Эти переменные нужны, чтобы монитор мог записывать данные и адресовать данные. Кроме этих байтовых переменных есть еще признаки. И в первую очередь это признак передачи управления программе пользователя — mFlagUser. Если этот признак активен — работает программа пользователя, извлекает коды из внешнего ОЗУ. Если пассивен, то работает программа монитора.

Основная трудность в использовании таких системных переменных заключается в том, что пользователь и монитор используют общее внутреннее ОЗУ и пользователь может нечаянно затереть переменные. Поэтому монитор располагает свои переменные в самом верху внутреннего ОЗУ, надеясь, что пользователь не дойдет до самого верха. И признак, флажок пользователя используется не битовый, а байтовый и размещается там же вверху.

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

3. Векторы прерываний монитора учебного модуля

При начальном пуске адресуется нулевая ячейка. Эта ячейка указывает начало программы. И управление должно передаваться программе монитора. Монитор кроме того использует прерывание по последовательному порту, что необходимо для связи с компьютером. Все остальные векторы нужно ориентировать во внешнее ОЗУ.

Запишем эту таблицу на ассемблере:

ORG 0

LJMP mMonStart

ORG 3

LJMP mExtAdr +03h

ORG 23

Ljmp mIntPSMon

Нулевой вектор передает управление программе монитора. Вектор управления последовательного порта передает управление состоянием монитора. Остальные векторы переадресуются во внешнюю память. То есть в таблицу прерываний записан внешний адрес плюс необходимое смещение. То есть все процедуры пользователя, кроме прерывания по последовательному порту, будут выполняться из внешней памяти.

Процедура прерываний по последовательному порту может использоваться совместно монитором и программой. Когда возникает прерывание, монитор анализирует флажок mFlagUser и если он не нулевой, то так же выполняет переадресацию во внешнюю память

4. Процедура монитора

Самой главной процедурой является процедура прерывания от последовательного порта. Именно в ней происходят все основные действия. Эта процедура получает коды команд от компьютера, различает их и выполняет, используя набор других процедур.

В результате выполнения этих процедур во внешнее ОЗУ пишется программа пользователя и затем выполняется.

 

еще рефераты
Еще работы по информатике