Буданов А.Н., RTSoft
Средства разработки и отладки программного обеспечения систем реального времени
на базе 16/32 разрядных микропроцессоров.
Разработка программного обеспечения (ПО) систем реального времени
является сложным и многогранным процессом. Спектр подобных программных продуктов простирается от достаточно
простых мониторов для управления промышленными контроллерами, до сложнейших, обладающих искусственным интеллектом
систем, которые без участия человека должны принимать решения в течении долей секунды.
Традиционно основные задачи по управлению ресурсами систем реального времени возлагаются
на операционные системы реального времени (ОСРВ). ОСРВ координирует распределение ресурсов компьютерной системы
(микропропроцессор, память, порты ввода/вывода и т.п.) между конкурирующими по времени вычислительными процессами.
И в этом случае применение ОСРВ оправдано и неоспоримо, ведь пользователь разрабатывает лишь прикладное программное
обеспечение, а ОСРВ берет на себя основные заботы по распределению ресурсов, координации вычислительных процессов
между собой, своевременной реакции на прерывания. И к настоящему времени существует сложившийся ряд операционных
систем реального времени (OS-9, VxWorks, pSOS и т.п.), признанных лидеров в своей области.
Но что делать пользователям, которые в силу определенных условий (специфика задачи,
ограниченность или определенный характер ресурсов системы, стоимостные характеристики) не могут ( не хотят)
применять стандартные ОСРВ. Вариант практически один - разрабатывать собственные управляющие программы (т.н.
мониторы реального времени, координаторы, диспетчеры и т.д.). Эти управляющие программы, в силу своей специфичности
и максимальной адаптированности к задаче, выполняемой вычислительной системой, показывают чудеса реактивности и
компактности кода, компенсирующие титанические усилия опытнейших программистов по разработке, отладке и тестированию
подобных программных продуктов.
Для их создания искушенному программисту нужно иметь по крайней мере:
- контроллер (система исполнения), для которого необходимо разработать ПО реального времени и который имеет
необходимый набор вычислительных ресурсов (микропроцессор, память, часы и календарь реального времени, порты
ввода/вывода). Энергонезависимая память системы исполнения должна хранить программный код монитора/отладчика,
поддерживающего стандарт BDM, JTAG, OnCE;
- компьютер (система разработки), на котором будет проводится разработка ПО системы исполнения. В идеальном
случае, система разработки должна иметь интегрированную кросс-среду разработки и отладки программного обеспечения
для системы исполнения, дополненную возможностями эмуляции подготовленного для исполнения кода;
- физический канал связи системы исполнения и системы разработки (последовательный или параллельный).
Программное обеспечение обеих систем должно иметь функции поддержки обменов по каналу связи.
Ведь разработанное и отлаженное в режиме эмуляции ПО системы исполнения необходимо как минимум загрузить в память и
запустить в работу, а затем получать по этому каналу информацию о поведении системы (дампы памяти, содержимое регистров
микропроцессора). После чего наступает этап отладки программных модулей системы исполнения в режиме эмуляции ее терминала
системой разработки (трассировка исполняемого кода, установка и снятие контрольных точек и т.д.).
Но разработка собственного ПО для микроконтроллеров, промышленных интеллектуальных контроллеров
и т.п., не означает, конечно, написания его в машинных кодах. Для создания собственно исполняемого кода предлагается
целый спектр редакторов, кросс-ассемблеров, кросс-компиляторов С и С++, сборщиков полученных кодов в единый загружаемый
модуль. И когда все эти модули (т.н. система программирования) интегрированы в графическую среду отладки создаваемых
программных продуктов, с возможностью эмуляции их работы на микропроцессоре системы исполнения, то в этом случае,
пользователь получает идеальный инструмент для разработки и отладки собственного ПО систем реального времени.
Средства разработки и отладки ПО микропроцессоров фирмы SDS.
Разработка систем отладки ПО для систем реального времени - задача, решению которой посвятили
свою деятельность многие фирмы. Одна из них - фирма SDS (Software Development System) основана в 1984 году в США. В
настоящее время имеет отделения практически во всех развитых странах мира и является признанным лидером в разработке
графических средств создания и отладки ПО систем реального времени.
Мощные, ориентированные на максимальное удобство пользователя, графические среды, используемые
для этих целей, работают под управлением операционных систем SunOS, Solaris, HP-UX, MS-DOS, Windows 3.1, Windows 95 и
Windows NT.
SDS предлагает пользователям:
- набор оптимизирующих компиляторов С и С++ (CroseCode), с помощью которых можно разрабатывать ПО для наиболее
часто используемых в системах реального времени микропроцессоров фирмы Motorola - MC680x0, MC683xx, ColdFire и PowerPC;
- семейство кросс-ассемблеров (UniWare), создания программного обеспечения 8/16 битовых микропроцессоров фирмы Motorola и Zilog;
- SingleStep, мощная интегрированная среда разработки и отладки ПО систем реального времени на базе микропроцессоров
серий MC68k, ColdFire и PowerPC. Этот программный продукт - последняя и наиболее мощная разработка фирмы SDS.
Традиционный подход к разработке и отладке специализированного ПО, основанный на использовании
стандартных редакторов, ассемблеров или компиляторов, встроенных отладчиков созданного кода, практически себя исчерпал.
Появление большого числа микропроцессоров (часто специализированных), наличие в них кэшей данных и инструкций,
специализированных интерфейсных контроллеров, повышающих пропускную способность локальных шин микроконтроллера и т.п.,
послужило мощным стимулом к разработке качественно новых средств отладки их программного обеспечения. SingleStep -
программный продукт из этой серии.
Основные особенности SingleStep:
- эмуляция (simulation technology) работы микропроцессора, для которого отлаживается ПО, в среде системы разработки
(мощный графический интерфейс, стандартная операционная система). Гарантируется эмуляция до 100 000 команд отлаживаемого
кода в секунду на стандартных персональных компьютерах. Появление новых моделей микропроцессоров Pentium, Pentium Pro,
SPARC, делает скорость эмуляции еще выше;
- отладка ПО микроконтроллеров, поддерживающих стандартные протоколы отладчиков BDM, BDM+ (серии МС683хх и ColdFire),
JTAG (серия PowerPC 6xx и PowerPC 403), OnCE (PowerPC505, 821, 860);
- поддержка в процессе отладки интерфейса с логическими анализаторами фирм HP, Tektronix, DLI;
- возможность создания собственных мониторов реального времени, настроенных на управление микропроцессорами
PowerPC, ColdFire, MC680x0 или MC683xx.
SingleStep имеет модульную структуру и может применяться как для разработки и отладки
ПО простых микроконтроллеров (часто для этого достаточно иметь кросс-компилятор или кросс-ассемблер и BDM отладчик),
так и для применения при разработке ПО сложных систем реального времени (SDS предлагает согласующийся между собой
набор компиляторов, эмуляторов инструкций, встроенных отладчиков, в сочетании с интерфейсными средствами к собственным
мониторам или наиболее известным системам реального времени (pSOS+, VxWorks, OSE, Nucleus и т.д.). На рисунке представлена
комплекс программных продуктов фирмы SDS и их взаимосвязь между собой в процессе разработки и отладки ПО микпропроцессоров.
Заключение
Прошло то время, когда для отладки ПО микропроцессоров программист
мог полагаться только на поддержку отладчиков, предоставляющих относительно скромные средства получения информации
о поведении отлаживаемой системы и управления собственно процессом отладки.
Появление интегрированных графических средств разработки и отладки (подобных SingleStep
фирмы SDS) переводит процесс программирования микропроцессоров на более высокий уровень, предоставляя разработчику
мощный, гибкий, чрезвычайно дружественный и эффективный инструмент для решения этой задачи.