Приложение VXWORKS RTOS RTP
Моя цель, если это возможно, - скомпилировать приложение на C; скажем, простое приложение Hello World и из Vxworks Tshell загрузите приложение и запустите его.
Я читал о процессах реального времени и исполняемых файлах Vxworks ".vxe".
Компания, в которой я работаю, использует Vxworks в качестве ОСРВ для всех своих продуктов.
Ограничения: у меня нет доступа к среде разработки Tornado или к любым инструментам Windriver. У меня есть доступ только к встроенному оборудованию под управлением ОСРВ.
Есть ли сторонний компилятор, который я могу использовать для создания приложения, которое будет выполняться на VxWorks?
Пожалуйста, не высмеивайте меня; Я пытаюсь понять что-то за пределами моей компетенции. Я техник-электронщик и хорошо знаком с оборудованием, но не с ОСРВ.
2 ответа
Да, это может быть сделано - я делал это сам при работе с некоторыми продуктами NI, которые фактически используют vxworks в качестве ОСРВ. Следующая ссылка может помочь:
http://digital.ni.com/public.nsf/allkb/81D1172E3C28A5E4862575CC0076A230
Вам просто нужно скачать набор инструментов - к ссылке прилагается определенная версия, вы также можете получить ее с сайта Windriver.
Так как вы не будете использовать workbench, вам нужно будет самим поддерживать make-файлы и т. Д. - это то, на что вам нужна лицензия, для запуска gnu compliers не требуется лицензия. Который оставляет другое предложение, получает временную лицензию и устанавливает рабочую среду (просто чтобы получить цепочку инструментов компиляции), а затем собирает из командной строки, используя make.
Краткий ответ: НЕТ
Это больше, чем просто компилятор. Существует набор библиотек, с которыми необходимо связать ваше приложение, и эти библиотеки поставляются только со средой разработки vxWorks.
Кроме того, RTP были введены в VxWorks 6.2. Все, что раньше, (что-нибудь Торнадо...) не поддерживало бы RTP.
VxWorks имеет концепцию загружаемых модулей ядра (DKM), которую вы можете рассматривать как "библиотеку кода" или перемещаемый модуль, который может динамически загружаться в ядре (с помощью ряда средств, в том числе с помощью команды "ld" в vxworks). ракушка).
Как указывает mjs, для компиляции DKM можно использовать цепочку инструментов GCC, поскольку он создает частично связанный файл.out. Любые пропущенные символы разрешаются загрузчиком. Конечно, если вы используете какие-либо примитивы ОС,
Эти DKM не имеют ничего общего с RTP. RTP - это исполняемый файл, DKM - это модуль кода, который ничего не выполняет напрямую (некоторый другой код / оболочка обычно вызывает функцию в только что загруженном DKM).
RTP - это полностью связанный исполняемый файл, который означает, что все символы (например, printf, вызовы ОС и т. Д.) Должны быть разрешены во время компиляции (да, вы можете использовать разделяемые библиотеки, но символы по-прежнему должны быть определены и указывать. к). Эти функции объявлены в заголовках и хранятся в библиотеках, которые являются частью инструментов разработки Workbench.
Без инструментов разработки, библиотек и заголовков вы не сможете разработать код для RTP.