На начало страницы
| Главная страница | Обмен с внешними устройствами | Системная шина ISA | Платы расширения для шины ISA |
| Пример системы сбора данных | Система виртуальной отладки | Справочная информация |
Построение систем сбора и обработки 
информации
Система виртуальной отладки
Подготовка программы

После получения объектного кода прикладной программы наступает обязательный этап отладки - этап установления факта ее работоспособности, а также выявления (локализации) и устранения ошибок. Отладка программного обеспечения представляет собой отдельную сложную задачу, которая почти не поддается формализации и требует для своего выполнения высокого профессионализма и глубоких знаний разработчика. Обычно отладка прикладного программного обеспечения осуществляется в несколько этапов. Простые (синтаксические) ошибки выявляются уже на этапе трансляции.
Программное обеспечение любого из вариантов заданий состоит из двух частей - транзитной и резидентной. Транзитная часть программного обеспечения осуществляет:
- считывание параметров из конфигурационного файла или из командной строки, проверку наличия платы расширения по указанному в конфигурационных данных адресу,
- программную инициализацию БИС платы,
- сохранение старых и установку новых векторов прерываний,
- установку резидентной части программного обеспечения в памяти ПК.
Резидентная часть программного обеспечения может содержать один или несколько обработчиков прерываний.
Выполнить полностью этап комплексной отладки программного обеспечения разработанной в задании системы не представляется возможным из-за отсутствия как платы расширения, так и реальных источников и приемников информации. На конечном этапе выполнения задания требуется проверить правильность прохождения по всем ветвям алгоритма; правильность обращения ко всем портам, адреса которых используются в программе; убедиться в правильности восприятия тех или иных данных с портов, правильности их преобразования и обработки. Для этого готовится специальный отладочный вариант программы, полностью основанный на использовании всех возможностей СВО по имитации портов внешних устройств ПК и портов платы расширения.
В реальной системе после инициализации и установки резидентной части происходит обращение к одному или нескольким обработчикам прерываний, причем последовательность и количество обращений, а при разделяемом прерывании и фактически выполняемые действия, могут зависеть от как последовательности активизации источников запросов, так и от данных, считываемых с внешних устройств.
Возможности имитации запросов на прерывания в произвольные моменты времени не имеется, поэтому отладочный вариант программы представляется не набором отдельных обработчиков прерываний, а формируется как цельная измененная программа, в которой после транзитной части (чтения конфигурационных данных и инициализации) располагаются в определенной последовательности обработчики прерываний или один обработчик, замкнутый на себя. Расположение обработчиков прерываний в определенной последовательности зависит от имитируемого варианта поведения системы. Плата расширения может формировать только один запрос прерывания. Если этот запрос вызывается только одним источником, то неоднократное выполнение одного и того же обработчика чаще всего должно приводить к различным результатам в зависимости от данных, считываемых из внешнего устройства. При отладке программы с помощью СВО перед каждым входом в обработчик прерываний или перед каждой командой In нужно будет задавать новые данные - изменять состояния портов внешних устройств. При нескольких источниках прерывания, поступающих на плату расширения обработчик анализирует источник прерывания обычно чтением слов состояния интерфейсных БИС на плате. При отладке программы с помощью СВО перед каждым входом в обработчик прерываний необходимо имитировать запросы прерываний - устанавливать соответствующие разряды слов состояний в БИС.
Отладочная программа, естественно может отличаться от исходной. Необходимости в загрузке или выгрузке резидентной части нет, поэтому эти действия из текста программы могут быть исключены. Для сокращения времени отладки некоторые параметры могут быть изменены - отладочная программа может быть рассчитана на считывание, например, 16-ти байтов входных данных вместо 32-х по условию, или выполнять 4 цикла вместо 64-х.
NB:
Отладка программы может проводиться отдельно для резидентной и транзитной частей, также можно использовать несколько вариантов отладочных программ.
Назначение системы
Макроопределения
Подготовка программы
Описание портов ВУ
Отладка программы
Обращения к ВУ

ПРИМЕР СТРУКТУРЫ ОТЛАДОЧНОЙ ПРОГРАММЫ
В качестве примера рассмотрим простую гипотетическую систему, состоящую из ПК с платой расширения. Плата содержит одну БИС параллельного интерфейса, порт кода наличия платы и использует только одну линию запроса прерывания системной шины. Канал "А" БИС параллельного интерфейса работает в режиме "1" - режиме стробируемого ввода и предназначен исключительно для формирования запроса прерывания при поступлении импульса на вход STBa. Канал "B" БИС также работает в режиме стробируемого ввода и используется для ввода данных при поступлении импульса на вход STBb. Реакция системы на импульс STBb# возможна только после однократного восприятия импульса STBa#. После обработки данных устанавливается в "1" 6-й разряд канала "С".
БИС параллельного интерфейса имеет базовый адрес Абаз. Порт наличия платы - адрес Абаз+4.
Отладочная программа состоит из двух частей: программы инициализации и замкнутого в кольцо обработчика прерывания от платы расширения. При отладке перед каждым входом в обработчик необходимо имитировать тот или иной источник запроса прерывания, а при обработке прерывания от импульса STBb# - задавать входные данные.
Проверьте свои знания
Структура программы
Описание портов ВУ

| На главную страницу | На начало раздела | На начало страницы | © КСиТ МИФИ, 2001 г.