Буданов А.Н., RTSoft
Средства разработки и отладки программного обеспечения промышленных
контроллеров на базе 8/16 разрядных микропроцессоров фирмы Motorola
В процессе создания систем автоматизации на базе промышленных контроллеров
их разработчики решают задачи выбора или собственной разработки аппаратуры системы (микроконтроллер, разнообразное
периферийное оборудование, датчики, сетевое оборудование), а также программного обеспечения, которое "вдохнет жизнь"
в это набор электронных и механических компонентов, опутанных проводами, кабелями и который без него являются просто
грудой кремния, пластмассы и железа.
Разработчикам аппаратной части подобных систем (мы остановимся на ее наиболее интеллектуальной
составляющей - микроконтроллеры) в настоящее время предлагается чрезвычайно широкий спектр компонентов, начиная с
разнообразнейших микропроцессоров, памяти и устройств ввода/вывода, часто объединенные в единый корпус, и, кончая,
надежными разъемами, механические параметры которых во многом определяют надежность создаваемого микроконтроллера.
И проблема правильного выбора компонентов, которые будут использоваться в создаваемом промышленном контроллере,
проблема не только и, в последнее время, не столько выбора их электрических/электронных параметров, а часто проблема
их слаженной и корректной работы в единой, часто многоуровневой, компьютерной системе (датчик-контроллер ввода/вывода-
микропроцессор-микроконтроллер). А эта слаженность и гармоничность работы аппаратуры системы промышленной автоматизации
достигается прежде всего качеством того программного обеспечения, которое заложено в постоянные запоминающие устройства
ее микроконтроллеров.
Как найти этот компромисс между оптимальными параметрами аппаратных составляющих и программных
компонентов? Существует ли он? По нашему мнению существует. И будет найден, если при создании микроконтроллеров
разработчики будут использовать микропроцессоры фирмы Motorola. Это прежде всего 8/16 битовые модели знаменитой
серии МС68 - MC68HC05, MC68HC08, MC68HC11, MC68HC12, MC68HC16.
Мы не будем останавливаться на вопросах архитектуры микропроцессоров этой серии (то, что
она во многом совершенна говорит тот факт, что на сегодняшний день в компанией Motorola выпущено несколько миллиардов
микропроцессоров этой серии, нашедших и находящих по сей день применение практически во всех сферах деятельности
человека - от бытовых приборов до сложнейших микропроцессорных систем). В этой статье мы подробнее рассмотрим вопросы
создания программного обеспечения микроконтроллеров на базе 8/16 битовых микропроцессоров фирмы Motorola, а точнее
вопросы использования инструментальных программных сред, используемых для создания их "интеллекта".
К сожалению, разработчики программного обеспечения систем промышленной автоматизации на
базе 8/16 битовых микропроцессоров часто лишены столь необходимой им опеки со стороны разработчиков стандартных
инструментальных средств программирования (компиляторов с языков высокого уровня, графически ориентированных
редакторов и отладчиков и т.п.). Часто, особенно на этапе отладки созданных программных продуктов, они предоставлены
сами себе, имея на своем промышленном контроллере, в лучшем случае, последовательный порт, с использованием которого
в память загружается отлаживаемый код. Часто к этому последовательному порту после загрузки подключается алфавитно-
цифровой дисплей, с использованием которого можно реализовать некое подобие отладки и тестирование загруженного кода.
Для создания программного обеспечения промышленного контроллера программисту нужно иметь
по крайней мере:
- микроконтроллер (система исполнения), для которого необходимо разработать ПО реального времени и который
имеет необходимый набор вычислительных ресурсов (микропроцессор, память, часы реального времени, порты ввода/вывода).
Энергонезависимая память микроконтроллера должна хранить программный код монитора/отладчика, поддерживающего обмены
с системой разработки. Часто на этапе разработки программного обеспечения используется так называемая отладочная
платформа (evaluation board), архитектура которой повторяет (иногда избыточно - особенность ее универсальности)
архитектуру создаваемого микроконтроллера. Фирма Motorola выпускает отладочные платы (EVB) для всех производимых
ею микропроцессоров (MC68HC05EBV, MC68HC08EBV, MC68HC11EBV, MC68HC12EBV, MC68HC16EBV);
- персональный компьютер (система разработки), на котором будет проводится разработка ПО системы исполнения.
В идеальном случае, система разработки должна иметь интегрированную кросс-среду разработки, отладки и тестирования
программного обеспечения системы исполнения, дополненную возможностями симуляции подготовленного для исполнения кода;
- физический канал связи системы исполнения и системы разработки (последовательный или параллельный).
Программное обеспечение обеих систем должно иметь функции поддержки
обменов по каналу связи. Ведь разработанное и отлаженное в режиме эмуляции ПО системы исполнения необходимо как
минимум загрузить в память и запустить в работу, а затем получать по этому каналу информацию о поведении системы
(дампы памяти, содержимое регистров микропроцессора). После чего наступает этап отладки программных модулей системы
исполнения в режиме эмуляции ее терминала системой разработки (трассировка исполняемого кода, установка и снятие
контрольных точек и т.д.).
Но разработка собственного программного обеспечения для микроконтроллеров, промышленных
интеллектуальных контроллеров и т.п., не означает, конечно, написания его в машинных кодах. Для создания собственно
исполняемого кода предлагается целый спектр редакторов, кросс-ассемблеров, кросс-компиляторов С и С++, сборщиков
полученных кодов в единый загружаемый модуль. И когда все эти модули (т.н. система программирования) интегрированы
в графическую среду отладки создаваемых программных продуктов, с возможностью симуляции их работы в среде системы
разработки, то в этом случае, пользователь получает идеальный инструмент для разработки и отладки собственного
программного обеспечения систем реального времени.
Средства разработки и отладки программного обеспечения фирмы HiWare, используемые для
создания программного обеспечения микропроцессоров.
В настоящее время многие фирмы специализируются на разработке систем программирования,
ориентированных на создание программного обеспечения микропроцессоров, применяемых при проектировании промышленных
микроконтроллеров. Среди них многие фирмы ориентируются на решение этой задачи для 8/16 битовых микропроцессоров
фирмы Motorola. Одна из наиболее известных, официально признанная фирмой Motorola, как наиболее "успешный"
производитель программных продуктов такого рода - фирма HiWare. В настоящее фирма имеет отделения в США и Швейцарии
и является признанным лидером в разработке графических кросс-средств создания, отладки и тестирования программного
обеспечения промышленных микроконтроллеров.
Мощные, ориентированные на максимальное удобство пользователя, графические среды,
используемые для этих целей, работают под управлением операционных систем Windows 95/98 и Windows NT.
Фирма HiWare предлагает пользователям:
- набор оптимизирующих компиляторов С и С++ (HI-CROSS+), с помощью которых можно разрабатывать программное
обеспечение для микропроцессоров фирмы Motorola (MC68HC05, MC68HC08, MC68HC11, MC68HC12, MC68HC16), Philips
8051XA, STMicroelectronics ST7;
- набор отладчиков, созданного объектного кода (HI-WAVE Debugger), мощная интегрированная среда разработки
и отладки программного обеспечения 8/16 битовых микропроцессоров серий MC68, Philips 8051XA, STMicroelectronics ST7;
- набор программных симуляторов (HI-WAVE Simulator), с помощью которого разработчик может симулировать на
персональном компьютере работу создаваемого программного обеспечения 8/16 битовых микропроцессоров серий MC68,
Philips 8051XA, STMicroelectronics ST7 и их локальных периферийных устройств (I/O Simulation Development Package).
Набор компиляции HI-CROSS+.
Набор кросс-компиляции HI-CROSS+ предлагается фирмой HIWare как основной
инструмент для разработки в среде W95/98 и NT объектного кода, исполняемого на микропроцессоре. HI-CROSS+ включает
в себя кросс-компилятор с языка высокого уровня (С или С++), кросс-ассемблер, редактор перекрестных ссылок, дизассемблер,
программу "прошивки" созданного объектного кода в постоянное запоминающее устройство микроконтроллера - "программатор",
набор библиотек служебных и проблемно-ориентированных подпрограмм, построитель макросов.
- кросс-компиляторы ANSI-C и ANSI-C++, EC++ и CompactC++ пакета HI-CROSS+, полностью соответствуют международным
стандартам и выполняют полный набор оптимизирующих алгоритмов (по 60-ти разнообразным параметрам). Кросс-компиляторы
EC++ и CompactC++ являются подмножеством стандартного С++ компилятора и позволяют создавать оптимальный по размерам
и быстродействию код для встроенных приложений, используемых в микроконтроллерах;
- кросс-ассемблер пакета HI-CROSS+ может генерировать перемещаемый или объектный код программы, соответствующий
требованиям стандартного ассемблера микропроцессора Motorola;
- редактор перекрестных ссылок пакета HI-CROSS+ оптимизирует объектный код при объединении нескольких программных
модулей, выдает таблицы оптимизации, распределения используемой и неиспользуемой памяти, генерирует файлы в формате
S-записей фирмы Motorola;
- набор полностью готовых к использованию (ready-for-use) библиотек пакета HI-CROSS+ для встроенных приложений
(библиотеки функций с плавающей точкой, библиотека математических функций, функций организации ввода/вывода).
Имеется возможность создания собственных библиотек пользователя;
- "программатор" пакета HI-СROSS+ генерирует файлы в формате S-записей фирмы Motorola или Hex-файлов фирмы Intel,
подготавливает файлы для записи их в ППЗУ;
- дизассемблер пакета HI-CROSS+ декодирует коды объектных и абсолютных файлов, файлов библиотек.
Объектный код, созданный с помощью набора компиляции HI-CROSS+ полностью
соответствует требованиям к объектному коду набора программных отладчиков и симуляторов HI-WAVE (не мудрено - ведь
это программные продукты одной фирмы HiWare), что делает процесс создания, отладки и тестирования программного
обеспечения микропроцессора более быстрым, удобным и лишенным грубых ошибок.
Любой вышеописанный компонент пакета кросс-компиляции HI-CROSS+ может быть приобретен
пользователем отдельно.
Отладка программных кодов с использованиеv кросс-пакета отладки HI-WAVE
После того, как с помощью набора кросс-компиляции HI-CROSS+ создан
программный код, готовый к загрузке и исполнению микроконтроллером, встает задача тестирования и отладки полученного
кода. Для этого фирмой HiWare разработан графически-ориентированный пакет HI-WAVE, с помощью которого на персональном
компьютере, в среде Windows 95/98 или NT, производится отладка подготовленного кода.
Пакет отладки HI-WAVE предназначен для:
- симуляции и отладки программного обеспечения микроконтроллеров;
- симуляции работы периферийного оборудования создаваемого микроконтроллера;
- автоматизации процесса тестирования;
Пользователь может конфигурировать состав пакета отладки HI-WAVE в
соответствии со своими требованиями, архитектурой создаваемого микроконтроллера и задачами выполняемыми им.
Пакет отладки HI-WAVE имеет модульную структуру и состоит из Монитора (HI-WAVE Engine)
и набора модулей, называемых компонентами. Монитор управляет работой компонентов и координирует их взаимодействие.
Пользователь имеет возможность разработать и включить в пакет HI-WAVE собственные компоненты, что делает пакет
отладки настраиваемым на требования проекта, функционально гибким и удобным в использовании.
Например, для отладки программного обеспечения микроконтроллера может быть скомпонован
пакет отладки, в который входят следующие компоненты:
- HI-WAVE Монитор;
- симулятор микропроцессора;
- отладчик исходного кода (С/С++);
- отладчик кода на языке Ассемблера;
- profiler;
- анализатор состояния локальной шины;
- симулятор устройства ввода/вывода;
- программные модули (компоненты) пользователя;
- программные модули (компоненты) третьих фирм.
Наиболее интересной и полезной особенностью пакета отладки HI-WAVE
является возможность симулировать работу устройств ввода/вывода создаваемого микроконтроллера. В основном
симуляторы эмулируют работу регистров микропроцессора и исполнение его команд. Это очень полезная функция,
но микропроцессор - это иногда лишь малая часть встроенной микропроцессорной системы. Используя пакет отладки
HI-WAVE разработчик промышленного микроконтроллера может эмулировать работу не только микропроцессора, но и
устройств ввода/вывода, таких как регистровые устройства, аналого/цифровые преобразователи, таймеры (включая
прерывания, приходящие от них), а также другие компоненты системы ввода/вывода микроконтроллера.
В состав пакета отладки HI-WAVE входит Построитель приложений ввода/вывода, с помощью
которого пользователь может разработать компоненту-симулятор устройства ввода/вывода. Построитель функционирует
в среде Microsoft Visual C++. Для создания компоненты-симулятора необходимо лишь ответить на задаваемые вопросы
и код компоненты генерируется автоматически. Созданная компонента-симулятор интегрируется в среду пакета отладки
HI-WAVE и управляется им в процессе отладки.
Используя пакет HI-WAVE процесс отладки можно проводить следующими путями:
- симуляция созданного кода на персональном компьютере в среде Windows 95/98 или NT (с сохранением реального времени
исполнения команд эмулируемого микропроцессора). В этом случае отладка программного обеспечения микроконтроллера может
быть проведена до создания микроконтроллера;
- отладка созданного кода в среде микропроцессора (т.е. микроконтроллер уже создан и его программное обеспечение
отлаживается путем загрузки исполняемого кода в его память). В этом случае персональный компьютер используется как
устройство подготовки загружаемого кода, загрузки его в память микроконтроллера, а также как устройство управления
процессом отладки и тестирования. Для этих целей используется последовательный канал, соединяющий персональный компьютер
и микроконтроллер. В среде микроконтроллера процесс загрузки и отладки поддерживает специальный монитор, хранящийся в его ПЗУ;
- отладка созданного кода в среде микропроцессора (т.е. микроконтроллер уже создан и его программное обеспечение
отлаживается путем загрузки исполняемого кода в его память), используя особенности BDM или ICE отладочных интерфейсов,
поддерживаемых микропроцессорами МС68НС12, МС68НС16. В этом случае персональный компьютер используется как устройство
подготовки загружаемого кода, загрузки его в память микроконтроллера, а также как устройство управления процессом отладки
и тестирования. Для этих целей используется последовательный канал, соединяющий персональный компьютер и BDM-порт
микроконтроллера. В среде микроконтроллера процесс загрузки и отладки поддерживает специальный BDM-монитор, реализованный
в микропроцессоре.
Заключение
Похоже, что наступили времена, когда разработка программного обеспечения
промышленных контроллеров перестала быть неким шаманством, когда искушенный в своем ремесле программист, имея спаянный
"на коленке" микроконтроллер, подключенный к терминалу тремя проводами отлаживал загруженный код, надеясь только на
свой здравый смысл и недюжинное терпение.
Появление интегрированных графических средств разработки и отладки (подобных HI-CROSS+
и HI-WAVE фирмы HIWare) переводит процесс создания программного обеспечения микропроцессоров на более высокий
уровень, предоставляя разработчику мощный, гибкий, чрезвычайно дружественный и эффективный инструмент для решения
этой задачи.
|