VxWorks: Операционная система реального времени и комплекс инструментальных средств разработки ПО РВ
А.В.Демьянов, AVD Systems, г. Москва ( www.vxworks.ru )
Вряд ли сегодня можно кого-либо удивить быстрой, компактной и масштабируемой (scalable) мультизадачной операционной системой реального времени. А вот состав инструментальных средств разработки прикладного ПО РВ является определяющим как при принятии решения "сделать самому или купить готовую", так и при выборе "а что же купить".
 
Операционная система реального времени VxWorks фирмы Wind River Systems предназначена для применения на встроенных компьютерах, работающих в системах "жесткого" реального времени. Операционная система VxWorks является системой с кросс-средствами разработки прикладного программного обеспечения, т.е. разработка ведется на инструментальном компьютере (host) для последующего исполнения на целевой машине (target).

Поддерживаемые целевые архитектуры (targets):
  • Motorola 680х0 и CPU32, PowerPC
  • Intel 386/486/Pentium, Intel 960,
  • Sparc, Mips R3000/4000,
  • AMD 29K, Motorola 88110,
  • HP PA-RISC,
  • Hitachi SH7600,
  • DEC Alpha.
Поддерживаемые инструментальные платформы (hosts):
  • Sun SPARCstation (SunOS и Solaris),
  • HP 9000/400,700 (HP-UX),
  • IBM RS6000 (AIX),
  • Silicon Graphics (IRIX),
  • DEC Alpha (OSF/1),
  • PC (Windows).
Поддерживаемые интерфейсы:
  • host-target Ethernet,
  • RS232,
  • внутрисхемный эмулятор ICE (In-Circuit Emulator),
  • кросс-шина (backplane).

Микроядро операционной системы VxWorks

Операционная система VxWorks построена, как и положено ОС жесткого реального времени, по технологии микроядра, т.е. на нижнем непрерываемом уровне ядра выполняются только базовые функции планирования задач и управления коммуникацией/синхронизацией между задачами. Все остальные функции операционной системы более высокого уровня - управление памятью, вводом/выводом, сетевые средства, и т.д. - базируются на простых функциях нижнего уровня. Такая иерархическая организация позволяет обеспечить быстродействие и детерминированность ядра, а также легко строить необходимую конфигурацию операционной системы (scalable).

Переносимость на нестандартные целевые машины (портирование): BSP Porting Kit

Все аппаратно-зависимые части VxWorks вынесены в отдельные модули для того, чтобы разработчик встроенной компьютерной системы мог сам портировать VxWorks на свою нестандартную целевую машину. Этот комплект конфигурационных и инициализационных модулей называется BSP (Board Support Package) и поставляется для стандартных компьютеров (VME-npoueccop, PC или Sparcstation) в исходных текстах. Разработчик нестандартной машины может взять за образец BSP наиболее близкого по архитектуре стандартного компьютера и портировать VxWorks на свою машину путем разработки собственного BSP с помощью BSP Porting Kit.

Инструментальные и целевые лицензии

В VxWorks применяются два вида лицензий: инструментальная (development license) и целевая (target license). Инструментальная лицензия нужна одна на проект и приобретается для комбинации host/target, например Sun/680x0 или РС/iХ86. Целевых лицензий необходимо столько, на сколько целевых компьютеров будет установлена VxWorks (10, 100, 1000, ...). Как правило, целевые лицензии приобретаются оптом. Стоимость целевой лицензии $10-$1000 в зависимости от количества приобретаемых целевых лицензий. Стоимость инструментальной лицензии в зависимости от комбинации host/target составляет от $12000 до $30000.

VxWorks для UNIX-станций

Инструментальный комплекс VxWorks работает в операционной среде того компьютера, который используется для кросс-разработки встроенного прикладного ПО. Если Ваша инструментальная платформа - рабочая станция, то инструментальные средства VxWorks работают в среде Solaris, HP-UX, AIX или IRIX. В стандартную конфигурацию инструментального комплекса VxWorks входят: ядро и системные библиотеки в объектных кодах, система проектирования на языке С VxGNU, удаленный (remote) отладчик уровня исходного языка VxGDB, один образцовый BSP по выбору, одна целевая лицензия на прототип и инструментальная лицензия на 10 пользователей.

VxWorks для PC/Windows

Хотя рабочие UNIX-станции - основная инструментальная платформа для VxWorks, все большую поддержку и развитие получают инструментальные средства для РС-хост: VxWorks for Windows. В этом случае операционной средой для инструментального комплекса VxWorks является DOS/Windows 3.1, и в дальнейшем будут также поддерживаться Windows NT и Windows 95. Целевые архитектуры, поддерживаемые для VxWorks for Windows: Motorola 680х0 и CPU32, Intel x86, Intel 960, AMD 29K и PowerPC.

VxWorks for Windows предоставляет разработчику прикладного ПО РВ интегрированную среду MULTI, в которую входят компилятор, отладчик уровня исходного языка, контроллер версий, профилировщик, броузер (browser) программных модулей и классов и система управления программным проектом.

Языки программирования для VxWorks: С, C++ и Ada

Стандартным языком программирования в инструментальном комплексе VxWorks является язык С. Для UNIX-хост поставляется GNU С-компилятор с исполнительными библиотеками для VxWorks VxGNU. Для РС-хост поставляется MULTI С-компилятор.

Система программирования на языке C++ не входит в стандартную конфигурацию инструментального комплекса VxWorks и поставляется как дополнительный продукт.Система программирования на языке Ada для VxWorks поставляется почти всеми Ada-производителями: VADSworks (Rational), TartanWorks (Tartan), DACS-Works (DDC-I) и AdaMULTI (Greenhills).

Симулятор VxWorks или виртуальная целевая машина; VxSim

Для того чтобы уложиться в сроки проекта, часто необходимо начать разработку программного обеспечения до того, как будет готова аппаратная часть. Это можно сделать с помощью симулятора VxSim, который моделирует на инструментальной машине целевую мультизадачную среду VxWorks и интерфейс host-target. VxSim архитектурно не зависим, т.е. не моделирует аппаратных особенностей какой-либо конкретной микропроцессорной архитектуры, и таким образом является виртуальной целевой машиной (virtual target).

Мультипроцессорные системы на базе VxWorks: сеть на кросс-шине и VxMP

VxWorks использует два вида мультипроцессинга: слабосвязанный - сеть на кросс-шине (backplane network) и сильносвяэанный - объекты в разделяемой памяти (shared memory objects). В обоих случаях каждый процессор мультипроцессорной системы исполняет собственную копию ядра VxWorks и обменивается информацией с другими процессорами на шине (например, VMEbus).

В первом случае шина выглядит для программиста как сегмент сети с высокой скоростью обмена (40 Мбайт/с в случае VMEbus), а процессоры являются узлами этого сегмента. Для обмена информацией между процессорами могут применяться все стандартные сетевые протоколы.

Более быстродействующим, но менее универсальным по сравнению с сетью на кросс-шине, является обмен через объекты в разделяемой памяти (разделяемые семафоры, разделяемые очереди сообщений и др.). Этот вид мультипроцессинга реализован в библиотеке VxMP (VxWorks Multiprocessing), которая поставляется как дополнительный продукт.

Графические приложения реального времени: VX-Windows

Для приложений, использующих на целевой машине графику, поставляется VX-Windows - реентерабельная реализация X11R5/Motif 1.2 сегодня и X11R6/Motif 2.0 в дальнейшем. VX-Windows включает в себя:

  • Х-сервер с драйвером, настраиваемым на различные графические контроллеры;
  • библиотеки Xlib, Xt, Xmu, Xext;
  • менеджеры окон twm и mwm;
  • наборы виджетов Athena и Motif;
  • стандартные Х- и Motif-клиенты.
VX-Windows поставляется как дополнительный продукт как в объектном виде, так и в исходных текстах.

Базовые сетевые средства VxWorks: UNIX-networking, SNMP и STREAMS

VxWorks была первой операционной системой реального времени, в которой был реализован протокол TCP/IP с учетом требований реального времени. С тех пор VxWorks поддерживает все сетевые средства, стандартные для UNIX:

  • TCP/zero-copy,
  • TCP/UDP/ICMP/IP/ARP,
  • SLIP/CSLIP/PPP,
  • Sockets,
  • telnet/rlogin/rpc/rsh,
  • ftp/tftp/bootp,
  • NFS (клиент и сервер).
Реализация SNMP-агента с поддержкой как MIB-I, так и MIB-II, предназначена для применения VxWorks в интеллектуальном сетевом оборудовании (хабы, мосты, маршрутизаторы, повторители) и других устройствах, работающих в сети.

STREAMS, стандартный интерфейс для подключения переносимых сетевых протоколов к операционным системам, реализован в VxWorks как в версии SVR3, так и SVR4. Таким образом, в VxWorks можно инсталлировать любой протокол, имеющий STREAMS-реализацию, как стандартный (Novell IPX/SPX, DECNET, Apple-Talk и пр.), так и специализированный.

Дополнительные сетевые возможности: программа WindNet

Хорошо понимая невозможность реализации и поддержки одной фирмой всех стандартов в области коммуникаций, Wind River Systems анонсировала в 1994 году программу WindNet, по которой ведущие фирмы-производители программных средств в области коммуникаций интегрировали свои программные продукты с VxWorks. На сегодняшний день - это сетевые протоколы Х.25, ISDN, АТМ, SS7, Frame Relay и OSI; CASE-средства разработки распределенных систем на базе стандартов ROOM (Real-Time Object Oriented Modelling) и CORBA (Common Object Request Broker Architecture); менеджмент сетей по технологиям MBD (Management By Delegation) и CMIP/GDMO (Common Management Information Protocol/Guidelines for Definition of Managed Objects). Это далеко не полный перечень фирм-партнеров WindNet.

Поддержка стандартов POSIX

Стандарты POSIX (Portable Operating System Interface) призваны обеспечить переносимость прикладного программного обеспечения на уровне исходного кода и предназначены для тех пользователей, которые желают разрабатывать приложения, не зависимые от какой-либо конкретной операционной системы.

POSIX-функции реализуются в VxWorks по мере их окончательной стандартизации. В последней версии VxWorks 5.2 реализованы совместимые с расширениями POSIX для приложений реального времени (POSIX Real-Time Extensions 1003.1b) функции асинхронного ввода-вывода, счётные семафоры, очереди сообщений, сигналы, управление памятью (блокировка страниц), управление диспетчеризацией, часы и таймеры.

Мониторинг и отладка в реальном масштабе времени: WindView и StethoScope

Обычные отладчики, позволяющие исследовать состояние программ и данных в точках останова, являются статическими средствами отладки. Возможность исследования динамики исполнения программ и изменения данных предоставляют специальные средства отладки в реальном масштабе времени, которые трассируют интересующие пользователя события и накапливают их в буфере для последующего анализа. Трассировку системных событий (переключения задач, запись в очередь сообщений, установка семафора и т.д.) позволяет вести динамический анализатор WindView, который отображает накопленные в буфере события на временной диаграмме аналогично экрану логического анализатора.

Монитор данных StethoScope позволяет анализировать динамическое изменение пользовательских и системных переменных. StethoScope включает в себя также профилировщик процедур.

Применение VxWorks в глубоко встроенных системах: ядро WindStream, внутрисхемные эмуляторы и виртуальный Ethernet

В последнее время высокопроизводительные микропроцессоры, а с ними и операционные системы реального времени, все чаще используются в так называемых "глубоко встроенных" (deeply embedded) применениях (автомобильная электроника, офисная и бытовая техника, измерительные и медицинские приборы и др.). К компьютерным системам в таких применениях предъявляются два основных требования: малые габариты и низкая стоимость. Поэтому глубоко встроенные микропроцессорные системы ставят две проблемы на пути применения серийных ОС РВ: небольшие объемы используемой памяти и отсутствие "лишних" интерфейсов, по которым можно было бы связать целевую и инструментальную машины на этапе разработки встроенного ПО.

Специально для систем с сильно ограниченным объемом памяти Wind River Systems разработала редуцированное ядро WindStream, которое требует для работы не более 8Кбайт ПЗУ и 2Кбайт ОЗУ. При этом для WindStream применим весь спектр инструментальных средств VxWorks, включая WindView.

В качестве интерфейса между инструментальной и встроенной целевой машинами можно использовать внутрисхемные эмуляторы ICE (In-Circuit Emulators), например НР64700, которые включаются в гнездо микропроцессора целевой системы, не имеющей Ethernet или RS232 для связи с инструментальной машиной.

Экономичной альтернативой внутрисхемным эмуляторам являются так называемые ROM-эмуляторы, включаемые в гнездо ПЗУ микропроцессора целевой системы, например NetROM фирмы XLNT Designs. К Ethernet-разъему эмулятора NetROM подключается инструментальная машина, стандартный Ethernet-драйвер VxWorks заменяется драйвером NetROM, и, таким образом, на целевой машине появляется виртуальный Ethernet.

Экспертная система реального времени, визуализатор процессов и СУБД: Rtworks

Инструментальный комплекс для разработки ПО сложных распределенных интеллектуальных систем управления реального времени RTworks фирмы Talarian включает в себя экспертную систему реального времени, интерфейс оператора сложных систем РВ, СУБД РВ и другие компоненты, которые могут работать совместно с VxWorks в одной распределенной системе.

Интеграция VxWorks с системами цифровой обработки сигналов: SPOX-LINK for VxWorks

В многопроцессорных DSP-системах, как правило, одному из процессоров отводятся функции общего управления всей системой. В качестве такого управляющего процессора обычно используют универсальный микропроцессор, а не DSP, для того чтобы на нем можно было применить операционную систему общего назначения с более развитыми сетевыми средствами, файловыми системами и другими ресурсами общего назначения.

Наиболее распространенной ОС РВ для DSP является SPOX фирмы Spectron Microsystems. В случае применения VxWorks на процессоре, управляющим многопроцессорной SPOX-системой, для связи двух операционных систем предлагается мост SPOX-LINK for VxWorks, который позволяет SPOX-задачам иметь доступ к VxWorks ресурсам (сети, дискам и др.), и наоборот, VxWorks-задачи могут обращаться к SPOX-peсурсам, например, к каналам аналогового ввода/вывода.

Более подробная информация по VxWorks и другим сопутствующим программным продуктам содержится в комплекте информационных материалов, который высылается по запросу.

Учебные курсы по VxWorks проводятся в НОУ "Учебный центр РТофт", описание учебного курса находится по адресу www.rtsoft-training.ru.

 
 
О журнале | Новости | Архив | Выставки и события | Ресурсы | Подписка | Реклама | Авторам статей
Copyright 2000 © Мир компьютерной автоматизации. Авторские права охраняются.
Designed by Jang