ПРИМЕНЕНИЕ КРОСС-СРЕДСТВ ДЛЯ СОЗДАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ МИКРОПРОЦЕССОРНЫХ СИСТЕМ
Основные этапы разработки и отладки программ для микропроцессора 1804 были освоены ранее. При программировании простейших задач трансляция (перевод) мнемокодов в цифровые коды (ассемблирование) производилось "вручную", т.е. по таблицам, описывающим наборы команд. Очевидны недостатки такого подхода: большая трудоемкость и высокая вероятность ошибок.
Для отладки программ использовались устройства так называемого резидентного типа, то-есть построенные на МП того типа, для которого разрабатывается программа. Для каждого типа МП требовалось свое отладочное устройство, по структуре напоминающее несложную ЭВМ. Малая память и ограниченные средства управления и индикации делают процесс отладки достаточно долгим и трудным.
Предпочтителен иной подход, когда используется универсальная ЭВМ широкого назначения, снабженная пакетом так называемых кросс-средств для конкретного типа МП (не совпадающего с используемым в ЭВМ). Такой пакет обеспечивает автоматизацию основных этапов разработки программ для этого типа МП и часто его называют САПР - система автоматизированного проектирования. Для каждой пары типов ЭВМ и МП требуется свой пакет кросс-средств.
Язык ассемблера (ассемблер) использует символические буквенные обозначения - мнемоники и является машинно-ориентированным языком, отображающим архитектуру МП. Одна строка программы на ассемблере соответствует одной команде МП. Язык ассемблера позволяет разрабатывать наиболее эффективные, то-есть экономичные по затратам памяти и времени на выполнение программы. Чтобы воспользоваться пакетом кросс-средств, разрабатываемая программа записывается в редакторе на языке ассемблера и вводится в ЭВМ с соблюдением несложных правил, которые обеспечивают ее безошибочное восприятие.
Каждая инструкция (команда) занимает одну строку, может содержать метку, отделяемую двоеточием и заканчивается точкой с запятой. Комментарий отделяется как в языке С. Используются латинские символы и цифры. Мнемоника операндов и операторов должна соответствовать структуре МП и набору его команд. Перед шестнадцатиричным числом пишутся символы 0x. Программа может содержать директивы: для размещения сегментов программы и данных в конкретных областях памяти, для прямого присваивания некоторому имени численного значения, для задания констант и др.
Введенная в ЭВМ программа на ассемблере является исходной, ей присваивается имя с расширением .asm или .dsp.
Пакет кросс-средств состоит из следующих программ:
Кросс-ассемблер - программа-транслятор (переводчик) с языка ассемблера на машинный язык, то-есть на язык двоичных единиц и нулей. Приставка "кросс" часто опускается. Исходной для транслятора является программа с расширением .asm или .dsp.
В процессе работы транслятора создается программа в машинных кодах (объектная) с расширением .obj. Попутно может создаваться файл листинга с расширением .lst, содержащий в каждой строке номер строки, адрес и объектный код команды и копию строки исходной программы. При обнаружении нарушений правил языка ассемблера выводятся сообщения об ошибках.
Компоновщик (редактор связей) обеспечивает объединение (компоновку) всех объектных модулей, входящих в программу, в единый загрузочный модуль. При этом происходит привязка программы к физическим адресам конкретной МП-системы и обеспечивается взаимное соответствие адресов и связей между модулями. Получаемая программа c расширением .exe или .dxe используется далее в МП-системе (загружается в ее память).
Кросс-отладчик - диалоговая (интерактивная) программа для отладки прикладных программ для МП - содержит в себе программную модель этого МП, отображающую его архитектуру и алгоритмы выполнения всех команд, и средства управления работой модели с терминала ЭВМ путем введения команд-приказов и изменений состояний узлов модели.
Пользователь имеет возможность ввести в память загрузочный модуль отлаживаемой программы, наблюдать содержимое регистров и ячеек памяти в режимах выполнения программы по шагам и с остановками.
Программный кросс-отладчик (по-английски simulator, в переводе имитатор) является удобным и эффективным средством локализации и устранения ошибок в разрабатываемых программах. Если разрабатываемое устройство является программно-аппаратным комплексом, то заключительный этап отладки потребует применения аппаратно-программного отладчика (эмулятора), так как совмещение имитатора с программами, моделирующими интерфейс и аппаратную часть МПС, обычно затруднено.
Дизассемблер - программа, осуществляющая перевод цифровых кодов объектной программы в мнемокоды, то-есть решающая обратную задачу по сравнению с кросс-ассемблером. Встроенный дизассемблер позволяет расшифровывать содержание программы, введённой в имитатор.
Прежний пакет кросс-средств для сигнального процессора ADSP-21xx, реализованный на IBM PC, имел имя ADI_DSP и содержал построитель, ассемблер, компоновщик и имитатор с встроенным дизассемблером.
На современном этапе используется пакет VisualDSP++, который представляет собой интегрированную (в смысле, совмещенную) систему разработки и отладки прикладной программы от начала до конца в сильной степени автоматизированную. Различия, в основном, в терминах и измененных расширениях файлов. Учёт архитектуры системы + трансляция + компоновка выполняются в один приём, заканчивающийся созданием исполняемого файпа. Этот единый процесс называется формированием. Режимы отладки в VisualDSP++ значительно расширены.
Транслятор и компоновщик выдают сообщения о имеющихся в программе синтаксических ошибках. После устранения ошибок процесс формирования повторяют.
Логические ошибки программы не обнаруживаются. Так что сообщение об отсутствии ошибок ещё не гарантирует правильности программы. Логические ошибки обнаруживают себя при выполнении программы - возникают неверные результаты. Для их выявления удобно пользоваться отладочными средствами.
Логические ошибки в программе обнаруживают путем контрольного выполнения программы и сравнения результатов с заранее рассчитанными ожидаемыми значениями. Цель пошагового выполнения программы – убедиться в правильной работе каждой из строк программы. Фиксировать значения нужно только в тех регистрах, в которые происходит запись в данной операции, то-есть в тех, которые находятся левее знака присвоения. В программе с циклом достаточно проверить в пошаговом режиме результаты для первого прохода по циклу. В последующих проходах достаточно контролировать только итоговые цифры, пользуясь контрольной точкой. На следующих этапах проверяется правильность управления ходом выполнения программы (разветвления, организация цикла и т.д.). Здесь тоже полезно применять контрольные точки. Путь от контрольной точки до контрольной точки выполняют в режиме прогона. Такой подход является наиболее эффективным, чтобы отладить программу и убедиться в правильности её работы в целом.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.