Н.П.БРУСЕНЦОВ, В.И.ЛОБАНОВ, Н.М.ЛОКТЕВ
АДАПТИРУЕМАЯ ОТЛАДОЧНАЯ СИСТЕМА
РАЗРАБОТКИ МКУ В СРЕДЕ ДССП
Отладочные системы разработки микроконтроллерных устройств (МКУ)
являются основным инструментом при проектировании и отладке цифровых
устройств на базе микропроцессоров и однокристальных микро-ЭВМ. Тради-
ционно под каждый процессор разрабатывается своя специализированная
отладочная система. Специализация затрагивает не только программное
обеспечение, но и всю аппаратную поддержку. Это приводит к тому, что
создание отладочных средств под новый микропроцессор затягивается на
1-2 года, а их стоимость достигает 5-10 тыс. долларов.
Авторами была разработана простая и дешевая адаптируемая отладоч-
ная система (АОС) для проектирования и отладки МКУ, имеющих открытую
шину адреса/данных. АОС позволяет перенастраиваться на новый тип про-
цессора при неизменном аппаратном обеспечении. Изменение программного
обеспечения затрагивает не более 20% общего объема. Программная под-
держка была создана в среде диалоговой системы структурированного
программирования (ДССП), что и предопределило достаточно сжатые сроки
разработки АОС. ДССП и развиваемый адаптивный язык РАЯ описаны в
[1,2].
Архитектура АОС является дальнейшим развитием идей, изложенных в
[3,4], по обеспечению простоты и универсальности отладочных средств.
Аппаратная чать АОС представляет из себя плату, подключаемую через па-
раллельный интерфейс к системной шине ПЭВМ IBM PC/XT. Параллельный ин-
терфейс реализован на 3 микросхемах среднего уровня интеграции, плата
АОС содержит 13 микросхем большого и среднего уровня интеграции.
В состав платы АОС входят блоки и функциональные узлы: интерфейс
адреса и данных (ИАД), интерфейс управляющих сигналов (ИУС), ОЗУ прог-
рамм пользователя (ОЗУПП), ОЗУ контрольных точек (ОЗУКТ), коммутатор
шины адреса (КША), коммутатор шины данных (КШД), формирователь сигна-
лов управления (ФСУ) и блок управления МКУ (БУ). Эти узлы и блоки свя-
заны между собой шинами адреса (ША), данных (ШД) и управления (ШУ).
Назначение блоков, узлов и шин АОС описывается следующим образом.
Блок ИАД предназначен для приема и передачи адреса и данных от инстру-
ментальной ПЭВМ. Блок ИУС передает сигналы управления от ПЭВМ на ФСУ и
БУ. Блок ОЗУПП хранит программу пользователя, а также программу выве-
дения содержимого внутренней памяти целевого процессора, которая заг-
ружается в ОЗУПП лишь на время ее исполнения. ФСУ служит для формиро-
вания сигналов управления работой ОЗУПП, ОЗУКТ, КША, КШД. ОЗУКТ хранит
информацию о наличии контрольных точек. БУ формирует сигналы управле-
ния целевым процессором для перевода последнего в один из режимов: ав-
томатический, пошаговый или режим КТ. Наличие БУ избавляет разработчи-
ка от необходимости аппаратной перестройки при переходе на новый тип
целевого процессора, что обепечивает простую и быструю адаптируемость
АОС. Коррекции подвергается только программное обеспечение.
Программное обеспечение отладочной системы.
Программная часть отладочной системы написана в среде ДССП.
Выбор данной среды объясняется наличием большого опыта работы у авто-
ров в данной среде и наличия определенных программных наработок. Кроме
того, необычность построения системы с точки зрения обычных программ
даёт некоторую надежду на повышенную трудность вскрытия готовой поль-
зовательской системы от несанкционированного доступа или копирования,
(естественно при использовании определенных алгоритмов защиты).
Полная версия программы поддержки отладочного устройства вклю-
чает в себя следующие программные компоненты:
- так называемая базисная система, которая гораздо шире базо-
вой системы ДССП за счёт того что к ней пристыковано боль-
шинство из имеющихся в составе ДССП библиотек
- программа создания и поддержки параметров настройки и функ-
ционирования системы;
- программа сохранения системы и авторизации доступа;
- модуль дизассемблера;
- модуль редактирования памяти;
- модуль поддержки аппаратной части отладчика;
- сервисная оболочка системы;
- кросс-ассемблер;
- управляющая программа аппаратной части;
- модуль программатора ПЗУ.
Базисная система строится на основе ядра системы (файл Q.EXE)
путем добавления к ней библиотек с последующим сохранением на диске. В
качестве присоединяемых библиотек использованы следующие компоненты:
- программа прокрутки экрана ROLLSCR,
- программа поддержки быстрой работы с экраном SCRW2LNM,
- редактор текстов E,
- модуль просмотра словаря ONLYQND,
- отладчик программ OTL,
- выдачи значений времени на экран DATETIME,
- поддержки работы с мышью MOUSE,
- средства организации меню MENU4,
- набор утилит для работы в меню MENU4UTI,
- организации помощи GENHLP4,
- поддержки работы с прерываниями INT,
- диспетчер параллельных процессов DISP,
- вызова внешних сопрограмм EXEFILE,
- организации меню выбора файлов SELFILE,
- выдачи значений времени на экран PR-WATCH,
- пакет контроля быстротекущих процессов RT-TMR,
Время от времени пользовательская надстройка над базисной
системой требует введения или изменения функций в базисной системе.
Это значит, что иногда приходится заново компилировать базовую систе-
му. Для автоматизации этого процесса введен механизм псевдокомпоновки.
Все составляющие компоненты системы фиксируются в файле компоновки
BASE.DSP при помощи записей типа LOAD <filename>. Пример файла
BASE.DSP приведен в приложении.
После завершения компоновки базисная система сохраняется при
помощи строки SAVE NEWBASE PEXEC. Это даёт возможность при старте ба-
зисной системы выполнить команды заданные в виде параметров командной
строки. Обычно в качестве такой команды стоит команда LOAD <filename>.
При помощи этой команды загружается файл компоновки пользовательской
системы. Пример такого файла приведен в приложении 1.
При своем выполнении файл компоновки определяет с помощью сло-
ва DEFINE?, пристыкована требуемая часть к системе или нет. Если часть
уже есть в системе, то загрузки её не происходит и компоновка идёт да-
лее. Использование таких файлов позволяет автоматизировать сборку
системы, а значит ускорить компоновку пользовательской системы при
внесении изменений в любой из составляющих модулей системы. Как пока-
зал опыт наиболее часто изменяется пользовательская часть и в част-
ности её последние модули.
Модули базисной системы меняются сравнительно редко, и уж совсем
редко приходится прибегать к коррекции ядра системы. Коррекция потре-
бовалась для команд CDIR и CD. Дело в том, что эти команды не исполь-
зуют командное прерывание DERR, вызываемое при сбоях в дисковой систе-
ме. Это приводит к тому, что диагностика, выводимая этим прерыванием,
разрушает целостность оконной информации прикладной системы. Произве-
денная коррекция позволяет перехватывать выдачу диагностических сооб-
щений подобно тому, как это сделано в командах типа WOPEN CONNECT SPOS
IS OS IB OB и т. д. Корректировка базисной системы свелась к доработке
пакетов текстового редактора, организации меню и набора утилит для ме-
ню.
В редакторе сделаны доступными или введены следующие слова:
- M1 M2 для возможности работать с отмеченным текстом во вновь созда-
ваемых расширениях редактора.
- VYVEDIT PIE NIE NFE используется для ввода и вывода текста в буфер
редактора из меню выбора файлов без использования командной строки.
Для сохранения целостности экрана при таком вводе пришлось убрать
диагностику числа введенных строк в буфер, так как число строк в ре-
дакторе все равно видно при работе в нём.
- FRT для возможности определения имени файла находящегося в редактор
программным путем и создания из этого имени родственных файлов то
есть имеющих другое расширение.
- POSLPF для возможности альтернативной трансляции текста из буфера.
Используется для трансляции текста кросс-ассемблером, подобно тому
как это делается в интегрированных оболочках.
По сравнению с другими языками программирования ДССП обладает
рядом возможностей, которые были использованы в программе.
1. В системе встроено понятие сохраняемых данных, что дает
возможность после окончания работы программы сохранить все изменённые
данные в файле самой программы. Конечно, с точки зрения экономичности
это может быть и неоптимальный подход, поскольку переписывается вся
программа даже тогда, когда изменяется 1 байт. В обычных языках это
выполняется при помощи файлов конфигурации. Но с другой стороны вся
программа строится теперь из 1 файла, и после её запуска не надо вво-
дить файл состояния системы, так как конфигурация уже в памяти машины
и система готова к дальнейшей работе.
2. Наличие команд работы с битами позволяет организовывать би-
товые массивы информации. Причем в отличие от обычных языков, где
максимальная размерность массива равна 16, в следствии чего требуются
усложнения индексации, здесь биты адресуются напрямую без дополнитель-
ного дробления.
3. Механизм объектов типа ACT VAR позволяет строить процедуры
подобные процедурам языка PASCAL, имеющим в качестве входного парамет-
ра имя процедуры. Данный способ позволяет добиться большой степени
обобществления процедур, а значит, повысить компактность программ.
Кроме того этот механизм может быть модифицирован в FIX ACT VAR. В
программе при помощи этого достигается постепенное наращивание и
расширение возможностей системы, а также различная степень функцио-
нальной конфигурации системы.
4. Ещё одним преимуществом является легкая переносимость прог-
рамм на машины разной архитектуры. Так, например, редактор,
кросс-ассемблер и дизассемблер были первоначально созданы и отлажены
на машине ДВК-2, а затем перенесены на IBM PC. При переносе доработке
подверглась только часть процедур, в которых есть обращение к дисковым
устройствам. Необходимость такой переделки обусловлена различным стро-
ением файловых систем на этих машинах.
Программное обеспечение системы, а под этим подразумевается
то, что надстраивается над базисной системой, построено по модульному
принципу с требованием наименьшей взаимной зависимости. В принципе
почти все модули могут быть использованы автономно. Взаимосвязь между
модулями появляется, когда начинает закладываться конкретная архитек-
тура процессора и алгоритмы управления им. Выдерживание требования за-
конченности и независимости позволяет в кратчайший срок произвести
адаптацию ПО под новый тип процессора. В настоящее время на базе дан-
ного ПО реализованы отладочные системы для 3-х типов процессоров. При
переходе с одного типа на другой изменяются программа построения экра-
на отладки, кросс-ассемблер, и программа управления отладочным уст-
ройством. Кроме того производится текстовая коррекция файлов и системы
помощи.
Рассмотрим назначение составляющих пользовательской системы
1. Программа создания и поддержки параметров настройки и функциониро-
вания системы.
Служит для создания и определения различных системных перемен-
ных и массивов, используемых в дальнейшем всеми пакетами системы. В
качестве таких переменных выступают различные шаблоны имен файлов для
составления списка файлов ввода кода, текста, имена внешних сопрог-
рамм, тип подключения отладочного устройства к машине. Кроме того
здесь определяются цвета различных меню системы. Если программу за-
пустить в скомпонованной системе, то она не транслируется, а только
настраивает таблицу цветов. Это очень удобно, так как позволяет не
производить из-за изменения цвета 1-го меню перекомпиляцию всей прог-
раммы.
2. Программа сохранения системы.
Служит для сохранения системы после очередного сеанса работы
пользователя. В системе сохраняются код отлаживаемой программы, конт-
рольные точки и все системные переменные. При запуске системы все эти
данные автоматически попадают в память системы и отладочного уст-
ройства, и пользователь может продолжать свою работу. Можно изменять
имя, под которым система будет сохраняться на диске, и таким образом
иметь несколько систем даже для одной задачи, но на разных этапах от-
ладки или с различными вариациями отлаживаемой программы. Такой подход
конечно же менее рационален по сравнению с подходом, когда каждая за-
дача хранится в виде файла исполняемого кода, но может быть использо-
ван, когда одной программой пользуются несколько пользователей.
3. Модуль дизассемблера.
Служит для получения строки текста ассемблерной команды из за-
данного кода команды. Используется при непосредственной работе с аппа-
ратурой, для отображение текстовой мномоники команд отлаживаемой прог-
раммы.
4. Модуль редактирования памяти.
Используется для просмотра и изменения памяти отлаживаемой
программы без её перетрансляции. Кроме того используется для проста-
новки контрольных точек. Редактирование может вестись как в кодовом,
так и в символьном виде. Во время редактирования пользователь сразу
получает информацию об ассемблерной команде, соответствующей коду дан-
ной ячейки. Есть возможность присвоения заданной области памяти зада-
ваемого значения.
5. Модуль поддержки аппаратной части отладчика,
Содержит основные подпрограммы поддержки аппаратуры отладочной
системы. К ним относятся такие процедуры как:
- инициализация аппаратуры
- тестирование аппаратуры
- чтение и запись памяти программ и контрольных точек
- реализация базовых режимов работы процессора.
6. Сервисная оболочка системы.
Это пакет организации интегрированной оболочки системы, в ко-
торой пользователь осуществляет свою работу. Оболочка предоставляет
следующие возможности: работа в режиме отладчика программы, редактиро-
вание текста программы, трансляция программы, чтение файла кода прог-
раммы с диска и запись в ОЗУ ПП и КТ, запись в дисковый файл кода
программы из ОЗУ ПП и КТ, просмотр файлов директории, просмотр файла
программами типа PCVIEW и т.д., настройка параметров системы, програм-
мирование ППЗУ, чтение файла в редактор.
Данных возможностей вполне достаточно, чтобы произвести полную
разработку программы не выходя из системы. Работа в оболочке построена
так, чтобы максимальным образом разгрузить пользователя от ручного
ввода команд. Этому также способствует поддержка манипулятора "мышь" в
данном режиме.
7. Кросс-ассемблер.
Служит для трансляции текста программы в исполняемый код за-
данного микропроцессора. При трансляции создается файл листинга прог-
раммы, по которому в случае ошибок можно произвести исправление текста
программы. После завершения трансляции код вновь полученной программы
автоматически записывается в дисковый файл, а также переписывается в
память отладчика и после чего используется для отладки на аппаратуре.
По своей организации кросс-ассемблер является двухпроходным, что
обусловлено требованием пользователя иметь реальный листинг, где в по-
лях меток ссылок вперёд стоит реальный код а не 0-е значение. По опыту
работы можно отметить, что перенастройка кросса на другой процессор
требует 2-4 дней. В настоящее время объём файла исходного текста прог-
раммы для трансляции ограничен 64-мя килобайтами.
8. Управляющая программа аппаратной части.
Обеспечивает реализацию всех режимов работы аппаратуры и сер-
висных функций отладки. Обеспечиваются следующие режимы и возможности:
- остановка процессора,
- очистка ОЗУ КТ,
- обнуление всех ресурсов,
- модификация системы счисления для ввода значений,
- модификация основных регистров и памяти,
- сброс процессора,
- исполнение 1 цикла команды,
- исполнение 1 команды полностью без вывода регистров,
- исполнение 1 команды полностью с выводом регистров,
- автоматическая работа процессора,
- запустить до точки останова,
- переключение частоты тактирования процессора,
- инвертирование режима отображения ОЗУ,
- вызов помощи по системе команд процессора,
- полуавтоматическая трассировка программы,
9. Модуль программатора ПЗУ.
Позволяет, не выходя из системы, запрограммировать код, полу-
ченный после отладки программы в ПЗУ с ультрафиолетовым стиранием се-
рии К573.
В своё время были предприняты попытки введения ассемблерных
вставок с целью ускорения работы системы, но ощутимого реального выиг-
рыша от их введения не получено. Это объясняется тем, что значительные
ограничения накладываются аппаратурой. Поэтому с целью сохранения пе-
реносимости программ решено отказаться от их использования и все
составные части системы написаны на базовом языке системыю. Вся прог-
рамма со всеми её компонентами занимает объём на диске в 105 килобайт.
Сравнивая аналогичные по назначению программы мы видим, что их обьём
как минимум в 1.5-2 раза превышает объём нашей программы.
Работа АОС была проверена на целевых процессорах типа
КР1816ВЕ48, КР1806ВЕ1, КФ1868ВЕ1. Не вызывает никакого сомнения рабо-
тоспособность АОС со всеми восьмиразрядными процессорами фирм Intel,
Motorola, Zilog и т.п. Сроки адаптации зависят от типа процессора.
Например, для КР1816ВЕ35 они составили 2 недели, для КФ1868ВЕ1 - 3 не-
дели.
Краткие технические характеристики АОС-8.
1. Разрядность целевых процессоров, бит - 4; 8
2. Объем ОЗУ программ, кбайт - 4
3. Количество контрольных точек - 4096
4. Количество корпусов ИМС - 13 + 3
5. Основные режимы работы:
- отладка программ;
- сброс всех контрольных точек;
- распечатка справочника по системе;
- запись любого участка ОЗУ программ на магнитный носитель в виде
файла;
- чтение файла программы и запись его в ОЗУ программ;
- запись-чтение внешней и внутренней памяти МКУ на магнитный носи-
тель.
6. Режим отладки включает в себя автоматический и пошаговый режимы, а
также режим контрольных точек.
Вопрос разрядности целевого процессора для АОС не является прин-
ципиальным: просто увеличивается разрядность ОЗУПП, КША, КШД, ИАД. В
настоящее время разрабатывается АОС-16 для работы с 4- , 8- и 16раз-
рядными целевыми процессорами. В результате НИОКР будет создана АОС-16
для целевого 16-разрядного ФОРТ/ДССП-процессора, выпуск которого пла-
8нируется в НПО "Светлана" (г. С.-Петербург).
Л И Т Е Р А Т У Р А
1. Брусенцов Н.П. Микрокомпьютеры. М.:Наука, 1985, с. 141-165.
2. Брусенцов Н.П. и др. Развиваемый адаптивный язык РАЯ диалоговой
системы программирования ДССП. М.: изд. МГУ, 1987.
3. Лобанов В.И. Архитектура отладочных средств для микроконтроллера
//Микропроцессорные средства и системы, N 3, 1986, с. 30-32.
4. Лобанов В. И. Мальков В. А. Аппаратное отладочное устройство для
//малоразрядной мткро-ЭВМ Электронная промышленность, 1986, вып. 2,
с. 52-53.
А Н Н О Т А Ц И Я
Брусенцов Н.П., Лобанов В.И., Локтев Н.М.
Адаптируемая отладочная система разработки МКУ в среде ДССП.
Рассматривается пример применения ДССП для решения весьма акту-
альной задачи создания адаптируемой отладочной системы (АОС) проекти-
рования микроконтроллерных устройств. Приводятся краткое описание ап-
паратного и программного обеспечения АОС, технические характериятики.
Библиогр.: 3 названия.
Приложение 1. Пример файла компоновки базисной системы.
"Компоновка ДССП системы. Версия 1.4. 6 Июня 1992."
B10 CR 11 ! SCOLOR TOS''
LOAD PRIMEF
USE SYSTEM
WRD FIND DEFINE? E2D
NOT %IF :: : DEFINE? WRD FIND BR0 T0 DEF?1 ;
: DEF?1 C@UB E2D NOT ;
%FI
B16
:: : PEXEC [] 81 'PSP SETHI C 1- @B TEXEC [] ;
USE SYSTEM
LOAD MEMORY
LOAD SCRW2LNM
LOAD ROLLSCR USE $ROLLSCR
LOAD E2
LOAD ONLYQND
LOAD OTL
LOAD DATETIME
LOAD MOUSE
LOAD MENU4SLN
LOAD MENU4UTI
LOAD GENHLP4L
LOAD INT
LOAD DISP
LOAD EXEFILE
LOAD SELFILE
LOAD PR-WATCH
LOAD RT-TMR
[LOAD OVL]
B16 CANCEL
SAVE NEWBASE PEXEC [Сохранение системы]
BYE
Приложение 2. Пример файла компоновки пользовательской системы.
DEFINE? $COLOR NOT %IF 0 LOAD QCL %FI
DEFINE? $EXSV NOT %IF LOAD EXSAVE %FI
DEFINE? $DIAS NOT %IF LOAD DIAS1806 %FI
DEFINE? $DUMP NOT %IF LOAD NSNDU %FI
DEFINE? $HARD NOT %IF 1 LOAD NQAPBIT %FI
DEFINE? $OS NOT %IF LOAD SERVIS %FI
DEFINE? $ASSEM NOT %IF LOAD NPASS2 %FI
DEFINE? $HELP NOT %IF LOAD HELPCOMN %FI
DEFINE? $CNTOS NOT %IF 1 LOAD CNT1806 %FI
DEFINE? $ADPROG NOT %IF LOAD ADPROG %FI
SS