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