А. Буданов
В процессе создания систем автоматизации на базе промышленных контроллеров разработчики покупают
или разрабатывают самостоятельно системную аппаратуру (микроконтроллер, периферийное, датчиковое и сетевое
оборудование), а также программное обеспечение, которое "вдохнет жизнь" в этот "набор кремния, пластмассы и
железа".
Разработчикам аппаратной части подобных систем (мы остановимся на ее наиболее интеллектуальной составляющей
микроконтроллерах) в настоящее время предлагается чрезвычайно широкий спектр компонентов, начиная с разнообразнейших
микропроцессоров, памяти и устройств ввода/вывода, часто объединенных в единый корпус, и кончая надежными разъемами,
механические параметры которых во многом определяют надежность создаваемого микроконтроллера.
При этом недостаточно правильно выбрать компоненты создаваемого промышленного контроллера. Важно заставить их
слаженно и корректно работать в единой, часто многоуровневой компьютерной системе (датчик контроллер ввода/вывода
микропроцессор микроконтроллер). А эта слаженность и гармоничность работы аппаратуры системы промышленной автоматизации
достигается, прежде всего, качеством того программного обеспечения, которое заложено в постоянные запоминающие устройства
ее микроконтроллеров.
Как найти компромисс между оптимальными параметрами аппаратных составляющих и программных компонентов? Существует ли
он? По нашему мнению, существует. И будет найден, если при создании микроконтроллеров разработчики будут использовать
микросхемы фирмы 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. Одна из
наиболее известных фирма HiWare, официально признанная компанией 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, STMicro-electronics 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+ может быть приобретен пользователем отдельно.
Отладка программных кодов с использованием кросс-пакета отладки 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)
переводит процесс создания программного обеспечения микропроцессоров на более высокий уровень, предоставляя разработчику
мощный, гибкий, чрезвычайно дружественный и эффективный инструмент.
ЗАО "РТСофт"
Тел. (095) 742-6828, 465-6702
Факс (095) 742-6829
E-mail:budanov@rtsoft.msk.ru
Ваш комментарий к статье | ||||