Получение и установка дистрибутива QNX SDP
Получение и установка дистрибутива QNX SDP
что представляет собой операционная система реального времени QNX Neutrino.
Вы научитесь получать и устанавливать дистрибутивQNX SDP, организовывать взаимодействие между целевой и инструментальной системой, а также расширять функциональность базового комплекта разработчика с помощью плагинов Eclipse.
QNX4 и QNX6
Понятие "QNX" неоднократно трансформировалось в течение почти 30 лет своего существования. Обычно под термином QNX понимают семейство операционных систем жесткого реального времени. Однако правильнее рассматривать QNX как собирательное название программных платформ для построения компьютерных систем реального времени. В настоящее время для коммерческого использования доступны программные платформы QNX двух поколений: QNX4 и QNX6.
Платформа QNX4
QNX4 — технологии, появившиеся в начале 90-х годов прошлого века и с некоторыми усовершенствованиями дошедшие до сего дня. Основу платформы QNX4 составляет ОСРВ QNX 4.25, графическая оболочка PhotonmicroGUI 1.14, Socket 4.25/5.0 (средства поддержки стека протоколов TCP/IPv4) и система программирования Watcom C/C++ 10.6.
Важный момент: QNX4 работает исключительно на архитектурной платформе x86 начиная с i386. ОСРВ QNX 4.25 — первая ОСРВ, прошедшая сертификацию POSIX в 1993 году — упорное следование различным международным и промышленным стандартам всегда было отличительным свойством компании QNX Software Systems.
Сопровождение ОСРВ QNX 4.25 продолжается в основном в направлении поддержки новых аппаратных устройств, хотя и неограничивается этим. Последняя редакция дистрибутива выпущена в ноябре 2009 года. Среди новинок последних двух-трех лет — поддержка USB и приводов SATA. Прекращение сопровождения QNX 4.25 даже не обсуждается — это обусловлено длительными сроками эксплуатации компьютерных систем реального времени, построенных на основе QNX4.
В 2003 году на базе ОСРВ QNX 4.25 была создана защищенная операционная система реального времени (ЗОСРВ) "QNX" (децимальный номер КПДА.00002-01), которая в 2004 году успешно прошла сертификацию в ФСТЭК (Федеральная служба по техническому и экспортному контролю — http://www.fstec.ru/) России по 3-му классу защиты от несанкционированного доступа (НСД) и 2-му уровню контроля отсутствия недекларированных возможностей (НДВ) — это позволяет предприятиям, разработавшим автоматизированную систему (АС, на базе QNX 4.25), с минимальными усилиями аттестовать свои изделия до класса 1Б включительно.
Конечно, несмотря на свою удивительную эффективность и доказанную надежность, продукты QNX4 родом из 1990-х годов — выпускникам вузов третьего тысячелетия, привыкшим к интегрированным средам разработки, не комфортно работать в текстовом редакторе vedit и использовать командную строку для сборки проектов. Однако если все-таки им придется сопровождать созданные лет десять тому назад (и, надо сказать, прекрасно работающие) системы на базе QNX4, то они могут использовать кроссплатформенный подход к разработке (т. е. разработку в среде Windows или Linux) в интегрированной среде системы программирования OpenWatcom (www.openwatcom.org).
QNX4 продолжает занимать существенную нишу на рынке промышленной автоматизации. Мало того, платформу QNX4 используют даже в новых проектах.
Для использования QNX4 также есть причины, которые называют программисты, применявшие DOS. В России (и не только в ней) DOS по факту является самой широко используемой программной платформой на рынке промышленной автоматизации. Во-первых, инструменты QNX4 гораздо комфортнее и мощнее инструментов DOS. Не говоря уже о полной защите памяти, многозадачности и встроенной поддержке распределенных вычислений. Во-вторых, в QNX4 (как и в QNX6) для доступа к регистрам используются хорошо известные функции in/out. И в-третьих, многие графические приложения для DOS разрабатывались с использованием программного интерфейса VESA BIOS Extensions (VBE), поддерживаемого в QNX. Все эти факторы делают перенос ПО систем реального времени из DOS в QNX4 достаточно комфортным занятием.
Платформа QNX6
Платформа QNX6 включает ряд технологий, основными среди которых являются:
операционная система реального времени QNX Neutrino. Ее часто для краткости называют просто QNX6 — так что всегда обращайте внимание, в каком контексте используется термин "QNX6";
комплект инструментальных средств QNX Momentics;
пакеты программного обеспечения так называемого "промежуточного слоя" (англ. middleware) QNX Aviage.
Программное обеспечение QNX6 обычно делится на две категории: средства разработки и средства исполнения. Вспомним этидва понятия.
Инструментальные средства — это программное обеспечение, предназначенное для создания и/или конфигурирования средств исполнения. Средства разработки не требуются во время эксплуатации целевых систем.
Средства исполнения — это программные компоненты, используемые в ЭВМ, предназначенной для эксплуатации конечными потребителями, т. е. программное обеспечение целевых систем.
По-английски этап эксплуатации называют runtime- отсюда средства исполнения (англ. Runtime modules, дословно компоненты для этапа эксплуатации) часто называют жаргонизмом рантаймы.
QNX Momentics и QNX Neutrino поставляются в виде продукта, который называется QNX Software Development Platform (SDP).
Существует три почти равнозначных дистрибутива QNX SDP — Windows-host (для кроссплатформенной разработки приложений QNX Neutrino в среде Windows),Linux-host (для кроссплатформенной разработки приложений QNX Neutrino в среде Linux) и Neutrino-host (для кроссплатформенной разработки приложений QNX Neutrino в среде самой QNX Neutrino, т. е. для резидентной разработки).
Выбор комплекта зависит исключительно от личных предпочтений.
Кроме QNX Momentics в состав каждого из дистрибутивов QNXSDP так же входят одинаковые средства исполнения ОСРВ QNX Neutrino, из которых можно"лепить" собственные конфигурации этой операционной системы для всех поддерживаемых аппаратных архитектур. Дистрибутив Neutrino-host дополнительно содержит инсталлятор ОСРВ QNX Neutrino для платформы Intelx86.
Имеются также дистрибутивы QNX SDP Lite. В них включены средства исполнения QNX Neutrino только для платформыIntelx86. Это облегчает скачивание дистрибутива из Интернета для ознакомительных целей.
QNX Momentics
Комплект инструментальных средств QNX Momentics включает:
инструменты разработки и отладки приложений на С/C++ с генерацией кода для всех аппаратных платформ, на которых работает ОСРВ QNX Neutrino;
визуальный построитель графических интерфейсов Photon Application Builder (PhAB);
инструменты для анализа и оптимизации программ — системный профилировщик, прикладной профилировщик, анализатор покрытия кода тестами;
инструменты для построения целевых систем — формирования загружаемых образов, образов встраиваемой файловой системы, создания файловых систем PowerSafe и QNX4, конвертирования образов в форматы программаторов ППЗУ и т. д.;
инструменты для мониторинга целевых систем QNX Neutrino (выполняющихся процессов, каналов и соединений, состояния потоков, сигнальных масок, файловых дескрипторов и т. д.), анализа использования ОЗУ процессами;
программы удаленного доступа к рабочему столу Photon целевой системы QNX Neutrino из среды Windows и UNIX — Phindows и Phinx.
В состав QNX Momentics входит большой комплект весьма качественной и обстоятельной документации в формате HTML на английском языке. Эта документация относится как к QNX Momentics, так и к QNX Neutrino.
В Windows-host и Linux-host документация доступна через элемент меню Helpинтегрированной среды разработки, в Neutrino-host она доступна через запускаемую из панели инструментов или с помощью меню Launch программу Help viewer. Ключевые документы переведены на русский язык и доступны в книжных магазинах.
Специалисты рекомендуют начать с "Jumpstart Guide". Русский перевод этого руководства доступен на сайте www.swd.ru, а видеопрезентацию авторов инструкции на английском и немецком языках можно посмотреть на сайте www.youtube.com. Затем — концептуальный документ "QNX Neutrino Realtime Operating System. System Architecture" (он есть в штатной электронной документации (Help), а также издан на русском языке). Дальнейшее чтение зависит от вашей специализации.
QNX Neutrino
Операционная система жесткого реального времени QNX Neutrino разрабатывается сообществом Foundry27 (www.foundry27.com) в рамках проектов "QNX OperatingSystem", "Networking", "Filesystems", "Graphics", "Multimedia", "BSP andDrivers" идр.
QNX Neutrino очень хорошо документирована. Базовые книги, необходимые для ее использования ("ОСРВ QNX Neutrino. Системная архитектура", " ОСРВ QNX Neutrino. Руководство пользователя" и учебник Роберта Кртена "Введение в QNX Neutrino: Руководство для разработчиков приложений реального времени"), переведены на русский язык.
Получение и установка дистрибутива QNX SDP
Для получения QNX SDP необходимо зайти в раздел "QNX Software Development Platform Evaluation" сайта www.qnx.com (страница доступна по адресу http://www.qnx.com/products/ evaluation/). Там будет предоставлена возможность скачать свежую версию продукта и получить временный лицензионный ключ (рис. 1).
Рис. 1. Веб-страница для скачивания QNX SDP и получения временного лицензионного ключа
Для скачивания доступно три дистрибутива, каждый из которых может быть в варианте "LiteVersion" или в варианте "Alltargets". Второй вариант имеет объем примерно в 2 раза больший, чем первый. Дистрибутив "QNX NeutrinoHost" представляет собой образ инсталляционного компакт-диска, остальные дистрибутивы ("WindowsHost" и "LinuxHost") — просто инсталлируемые программы.
Все дистрибутивы QNX SDP являются полноценными. Их "ознакомительность" связана не с функциональностью, а с временем действия лицензионного ключа. Таким образом, ознакомительным (evaluation) является лицензионный ключ, а не дистрибутив.
Вторым этапом следует заказать временный ("ознакомительный") лицензионный ключ. Для этого необходимо заполнить небольшую форму, основным полем которой является электронный адрес, на который вам, при условии согласия с условиями лицензионного договора, пошлют электронное письмо со строкой, являющейся ключом.
1. Откройте указанные Интернет-ресурсы и изучите возможность скачивания дистрибутива QNX SDP и получения лицензионного ключа. Определите актуальную на момент выполнения работы версию инструментального пакета. Скачивать дистрибутив не нужно!
2. Из сетевой папки, предложенной преподавателем, скопируйте в локальную дистрибутив QNX SDP и текстовый файл с ключом.
3. Убедитесь, что на рабочей станции осуществлен вход с правами администратора. Установите пакет QNX SDP. Запомните каталог, который IDE будет использовать для хранения проектов.
Еще одним весьма полезным файлом является сжатый (zipped) образ среды исполнения QNX Neutrino 6.5.0 для виртуальной машины VMware, доступный по ссылке http://www.qnx.com/ download/feature.html?programid=21189.
4. Убедитесь в работоспособности указанной выше ссылки. Скачивать из Интернета образ не нужно!
5. Скопируйте из сетевой в локальную папку архив с образом ОС QNX Neutrino, распакуйте архив.
Для использования образа, конечно, нужна виртуальная машина VMware, например, продукт "VMware Player", доступный для свободного скачивания с сайта компании VMware по ссылке http://www.vmware.com/products/player/. Необходимо заполнить небольшую регистрационную форму, принять условия лицензионного договора и можно скачивать продукт. Доступно два варианта VMware Player — Windows-Host и Linux-Host. Перед тем как скачивать, ознакомьтесь со списком поддерживаемых инструментальных (Host) операционных систем — не все версии и дистрибутивы Windows и Linux поддерживаются.
6. Скопируйте из сетевой папки в локальную инсталлятор виртуальной машины. Установите виртуальную машину на рабочую станцию.
Если необходимо из QNX Neutrino, установленной на виртуальной машине, взаимодействовать с другими компьютерами, то убедитесь, что сетевой адаптер виртуальной машины работает в режиме "bridged". Это означает, что виртуальная машина автоматически будет передавать на реальный сетевой адаптер (и обратно) все пакеты, передаваемые гостевой операционной системой в виртуальный адаптер.
7. Установите сетевой адаптер виртуальной машины в режим "bridged".
Qnx операционная система установка
QNX представляет собой коммерческую операционную систему для встраиваемых применений. Начиная с версии 6.4.0 часть системы распространяется в исходных текстах.
Установка системы программирования
Система программирования называется QNX Momentics. Для установки необходимо скачать образы компакт-дисков:
В Линуксе запускаем установщик:
Установщик спросит ключ лицензии. Файлы будут размещены в каталогах /opt/qnx632 и /etc/qnx. Потребуется 1210 Мбайт дискового пространства.
Чтобы не мучиться с активацией, просто заменяем файл /etc/qnx/licence/licences на аналогичный от прежней установки. Альтернативный вариант установки описан здесь.
Установщик добавляет необходимые переменные окружения в /etc/profile. Требуется выйти и заново войти в систему.
В качестве ярлыка запуска используем файл qnx_momentics.desktop. При первом запуске введите имя каталога, где будут размещаться разрабатываемые проекты, например “/home/vak/Project/QNX”.
Поддержка целевой платформы
Пакет поддержки целевой платформы (BSP, board support package) для плат ИТМиВТ с процессором Элвис МС-24 разработан фирмой SWD Software. Пакет включает следующие файлы:
mipsle/bin/mc24_flash | Утилита записи во flash-память |
mipsle/boot/sys/ipl-mc24 | Начальный загрузчик |
mipsle/boot/sys/startup-mc24 | Стартовая утилита |
mipsle/boot/sys/procnto-32-mc24 | Менеджер процессов QNX |
mipsle/boot/build/mc24.build | Пример скрипта построения системы |
mipsle/sbin/devc-ser8250 | Драйвер портов UART |
mipsle/sbin/fs-etfs-mc24 | Драйвер файловой системы flash-памяти |
Поместим эти файлы в каталоге
Простейший проект
По традиции, создадим простейший проект в стиле “Hello, World”. Делаем каталог:
Создаём файл hello.c:
Создаём файл hello.use, содержащий текстовую информацию о вызове программы:
С помощью утилиты addvariant порождаем стандартные файлы сборки “Makefile”, “common.mk” и “mips-le/Makefile”. Подробнее о файлах сборки можно прочитать в статье "Conventions for Makefiles and Directories".
Компилируем утилиту hello:
Протокол компиляции можно посмотреть здесь.
Образ для загрузки
Создадим образ для прошивки в flash-память целевой платы. Добавим в файл “common.mk” требуемые правила сборки:
Создаём файл “hello.build” с заданием для утилиты mkifs. Здесь собран комплект базовых утилит операционной системы, а также наш файл “hello”:
Получаем файл “hello.srec”, занимающий 875 килобайт памяти. Протокол можно посмотреть здесь.
Образ можно прошить в flash-память платы утилитой mcprog:
Стартовая утилита
В стартовом скрипте первой должна выполняться стартовая утилита startup-mc24. Её аргументы описаны в документе "Image startup programs: handle common options".
A | Reboot switch. If set, an OS crash will cause the system to reboot. If not set, an OS crash will cause the system to hang. |
D | Output channel specification (e.g. kprintf(), stdout, etc.). |
f [cpu_freq][,[cycles_freq][,timer_freq]] | Specify CPU frequencies. |
K | kdebug remote debug protocol channel. |
M | Placeholder for processing additional memory blocks. The parsing of additional memory blocks is deferred until init_system_private(). |
N | Add the hostname specified to the typed name string space under the identifier _CS_HOSTNAME. |
R | Used for reserving memory at the bottom of the address space. |
r | Used for reserving memory at any address space you specify. |
S | Placeholder for processing debug code’s -S option. |
P | Specify maximum number of CPUs in an SMP system. |
j | Add Jtag-related options. Reserves four bytes of memory at the specified location and copies the physical address of the system page to this location so the hardware debugger can retrieve it. |
v | Increment the verbosity global flag, debug_flag. |
I | |
i |
For ‘f’ option, all frequencies can be followed by H for hertz, K for kilohertz, or M for megahertz (these suffixes aren’t case-sensitive). If no suffix is given, the library assumes megahertz if the number is less than 1000; otherwise, it assumes hertz. If they’re specified, cpu_freq, cycles_freq, and timer_freq are used to set the corresponding variables in the startup code:
QNX Realtime Platform доступна для скачивания!
Для начала есть смысл рассказать, что, собственно, представляет собой QNX, в частности ее новый релиз. Гуру могут спокойно пропустить этот раздел либо просмотреть «по диагонали».
QNX — это операционная система реального времени, существующая уже более 20 лет.
Область применения ее сводится, в основном, к двум направлениям: упpавление технологическими пpоцессами (напpимеp, фабpикой, электростанцией, госпиталем), и втоpое пpизвание QNX — встраиваемая система (напpимеp, управление стиpальной машиной).
Но не следует упускать из виду, что прежде чем «засунуть» QNX в ту же стиральную машину, нужно написать соответствующее «стирательное» программное обеспечение. И вот тут-то появляется третья область применения системы — рабочее место разработчика ПО под эту ОС.
Одна из основных (но далеко не единственная 😉 особенностей системы — возведенная в абсолют модульность. Имея микроядро размером в несколько десятков килобайт, вы можете написать либо прикупить, либо иным образом поиметь все остальное согласно вашим планам по использованию системы: «стирательные» модули для стиральной машины, «мобильные» — для мобильного телефона и так далее. Если же вы планируете приспособить QNX в качестве десктоп-системы для разработки приложений — вам могут понадобиться такие вещи, как GUI, поддержка различных типов сетей, средства разработки, разнообразные утилиты и прочие полезные вещи, делающие QNX уютной средой обитания: интернет-приложения, текстовые и графические редакторы, аудиоприложения. Вот именно такой комплект под названием QNX Realtime Platform вам сегодня и предлагают совершенно бесплатно скачать — и тестировать, тестировать, тестировать. ;))
что в «коробочке»?
Базовый комплект включает в себя следующее:
QNX Neutrino — основные компоненты:
• Микроядро ОСРВ
• Система управления ресурсами
• Стандартные драйверы устройств
• Стандартные библиотеки и утилиты POSIX
• Стандартные файловые системы
• Файловая система управления установкой ПО
Photon microGUI — основные компоненты
• Графическое микроядро Photon
• Мультимедийные приложения
• Растеризатор Truetype-шрифтов
• Библиотеки графических виджетов для Photon
• Менеджер установки и управления ПО
• Веб-браузер Voyager и почтовый клиент
• Дополнительные бесплатные приложения и утилиты
В качестве дополнительно устанавливаемых пакетов доступны:
Набор GNU средств разработки:
• GCC/GDB
• Утилиты GNU
• Библиотеки и заголовочные файлы GNU
• Отладчик DDD
Набор средств разработки от QNX:
• Набор средств разработки для QNX Neutrino
• Полный стек TCP/IP от BSD 4.4
• Средства разработки для Photon
• Комплект API и библиотек 3dfx Glide
• Комплект API и библиотек Renderware 3
• Комплект API и библиотек Mesa
Средства совместимости:
• Пакет XPhoton
• Макет Citrix ICA(r)
Плагины для броузеров:
• RealNetworks(r) RealPlayerTM 7
• Macromedia Flash 4
Предлагается это счастье в трех вариантах: ISO CD-image, заTARенный и заFREEZEнный архив и инсталлятор под Windows. С первым и вторым все ясно, а насчет третьего разъясню подробнее. Есть вариант установки файловой системы QNX в качетсве файла на разделе FAT(FAT32). И все это хозяйство инсталлируется из под Окошек, вплоть до назначения root’овского пароля вашей QNX-системы. Затем в загрузочном меню у вас появляется новый выбор — загрузить QNX.
После установки базового комплекта менеджер установки ПО предложет вам укомплектовать систему всем необходимым, воспользовавшись дистрибутивами, находящимися в так называемых репозитариях: на вебе, на ЦД либо на вашем винчестере.
что интересненького?
(official data sheet)
По словам QSSL, одним из сильнейших мест системы является поддержка сети. Вы можете выбрать реализацию TCP/IP, наиболее точно отвечающую вашим потребностям — от минимального стека, пригодного для работы на клиентских устройствах, до полной реализации BSD 4.4. Кроме того, по прежнему развивается «родная» высокоскоростная сетевая технология QNX — QNet, ранее изввестная как FLEET.
По прежнему компания гордится своей замечательной графической оболочкой Photon. Не требовательная к ресурсам, модульная, она может работать как встраиваемый GUI, обеспечивая устройствам мультимедийную функциональность. Photon создан на базе такой же распределенной архитектуры, как и сама QNX RTOS. У разработчиков появилась возможность поддерживать и контролировать приложения, работающие на удаленных клиентах, используя TCP/IP в качестве транспорта.
Теперь что касается разработчиков. Система включает в себя мощнейшее средство разработки под GUI — Photon Application Builder (PhAB). Продукт обладает поистине фантастическими возможностями по быстрому и эффективному созданию пользовательских интерфейсов в режиме абсолютнейшего WYSIWYG — вы можете творить с виджетами чудеса — практически все, что придет в голову 😉 Ну и затем, как в большинстве визуальных средств разработки, вы можете достаточно легко «навешивать» на виджеты соответсвующий код. С помощью того же PhAB можно легко придать чужому интерфейсу нужный вам вид.
Начиная с данного релиза, QSSL отказалось от тесного сотрудничества с Watcom и все больше ставок делается на средства разработки GNU. Вообще, за счет использования POSIX-совместимых API, практически все GNU’шные продукты легенько собираются под QNX. На сегодняшний день практически все популярные утилиты и демоны портированы под QNX.
QSSL полна оптимизма относительно сближения с GNU-общественностью, и в частности, с Linux-сообществом. Со страниц FAQ’а для разработчиков (http://get.qnx.com/faqs/devfaqs.html) изливается поток восторженных фраз напредмет продвижения Linux-QNX’овской дружбы. В частнисти, QSSL заявляет, что движение Linux, популяризировавшее POSIX API, сослужило большую службу QNX, привлекая новых разработчиков. QSSL решительно отвергает мнение от том, что Linux вскоре может стать прямым конкурентом их системы, более того, компания считает, что эти «дружественные» системы и впредь будут помогать друг другу, так сказать идти по рынку рука об руку. Поскольку Linux и QNX, по словам фирмы, are SO COMPATIBLE, код от линуксовых проектов может быть использован на QNX и наоборот. В дальнейшем предполагаетася также создание ряда кроссплатформенных средств разработки для Red Hat Linux, Solaris и Windows.
путевые заметки
(unofficial data sheet & bug report)
Мы тут в редакции, обрадовавшись новости, быстренько скачали новый QNX, но поскольку до сдачи номера оставалось совсем немного времени, качественно и в полном объеме протестировать не успели.
Поделюсь, по сему, лишь поверхностными впечатлениями.
• В варианте установки из под Окон на FAT система ставится очень быстро и абсолютно user friendly. Действительно, даже самый законченный юзер может ответить на пяток задававшихся вопросов.
• При загрузке система достаточно долго тормозит в поисках устройств, с которых можно загрузиться — вплоть до 30 секунд.
• Для установки «богатой» версии системы — со всеми предлагающимися в репозитарии софтами — вам потредуется порядка 600 Мб места на винчестере. Кстати, с разделами FAT32 больше чем 8,4 Gb QNX OS Loader работать не может, равно как и с NTFS (что, впрочем, и не декларировалось).
• В новой QNX появился swapping. Но тем не менее, при всей декларируемой нетребовательноси к ресурсам, система очень своеобразно реагирует на нехватку оперативной памяти. При одновременно загруженных браузере Voyager, конфигураторе сетевых служб, терминале и менеджере установки ПО, в запуске банального TAR’а нам было отказано 8-(). При отказах загрузить в память очередное приложение, систама либо выдает соответсвующее предупреждение, либо просто отмалчивается, что нам показалось «неприличным».
• Совершенно отвратительно решена проблема локализации. При том, что в списке раскладок клавиатуры мы имеем позицию Russian, русских фонтов в дистрибутив положить забыли (либо спрятали так далеко, что сразу найти нам их не удалось). Возможности добавить несколько раскладок с последующим переключением их в стандартной поставке не предусмотрено 🙁
• Зато впечатлила настройка сети. При установке из Windows на FAT система растрогала вашу покорную слугу до слез, выгребя из Registry все виндозные настройки IP-сети. Полнейший и безоговорочный plug-and-play в этой области. Правда, названия и метод запуска драйверов сетевых устройств и стека TCP/IP (ранее называвшегося Socket или Socklet) сильно отличаются от QNX 4.x, но люди, как известно, ко всему привыкают, так что это не критично 🙂
• Теперь после установки системы мы грузимся сразу в Photon, который мило предлагает нам залогиниться в систему. Впрочем, при загрузке вы можете выбрать и иной вариант. При выборе же из Фотона меню «Shutdown» нам предлагаются следующие «выходы из положения» — завершить текущую сессию Фотона, завершить работу Фотона вообще (которая отрабатывает несколько неадекватно), и собственно shutdown самой QNX. При выборе пунктов 1 и 2 вы можете снова обнаружить меню «Shutdown» и уже оттуда перегрузиться в консольный режим. Правда, очень напоминает нашу любимую ОС Windows? 😉
• Уж не знаю, что мы нехорошего сделали с Photon’ом, но при N-ном заходе в систему GUI стал работать нестабильно: виджеты перерисовываются как бог им на душу положет, налезают друг на друга, показывают неуместную (полу)прозрачность. Причем с каждым последующим разом ситуация на экране становится все более критической. Переконфигурация свойств экрана и переустановка драйвера видеокарты положения не спасают. 🙁 По ходу, возможна следующая причина вышеуказанного безобразия. После одной из сессий QNX, пользователь Windows на той же машине изволил некорректно выйти из Окон, после чего запустился виндозный Scandisk. Есть вариант, что это. его рук дело.
• По умолчанию система инициализирует только одну виртуальную консоль. Это не есть приятно, хотя, конечно, исправимо. Базовый комплект не содержит ни одного консольного файл-менеджера. Неудобно.
• Почтовый клиент Vmail работает некорректно и нестабильно. Браузер Voyager «не умеет» CSS и некоторых других наворотов.
. Вот такой у нас получился беглый bug/feature report. Скачивайте, тестируйте, используйте и. думайте сами, решайте сами, иметь или не иметь 😉
P.S.: после написания такого грозного и местами нелицеприятного баг-репорта, когда материал уже ушел на верстку, наша тестовая система пришла в чувства, устыдилась и пока работает стабильно. Надолго ли. 😉
Сетевые решения. Статья была опубликована в номере 10 за 2000 год в рубрике software
Могу ли я использовать C++11 в QNX?
У меня есть кросс-платформенный код с некоторыми функциями C++11, такими как #include <thread> и другие. Скоро я буду использовать доску QNX 6.6, и мне интересно, сможет ли мой код компилироваться на ней и какие функции будут доступны.
QCC -это официальный компилятор QNX C++, но я не могу найти никакой документации, указывающей, какие функции C++11 или даже какие функции C++ в целом он поддерживает. Это обертка вокруг GCC или его собственная вещь? В любом случае, могу ли я получить или скомпилировать другие компиляторы на этой платформе?
3 ответа
- Программное обеспечение QNX C/C++
Как я могу получить образец кода QNX C/C++?
Я рассматриваю возможность использования некоторых функций C++11 (например, auto ) в некоторых кросс-платформенных проектах (Windows+Mac). На Windows Visual Studio поддерживает части предстоящего стандарта C++11, которые позволят мне упростить части кодовой базы, поэтому, естественно, я был бы.
Из того, что я знаю, qcc просто использует gcc внутри. Благодаря этому вы можете использовать все функции, предоставляемые версией gcc , которую QNX решил включить в свой пакет.
- GCC 4.7 цепочка инструментов, включая поддержку расширенных векторных расширений Intel (AVX)
- GDB 7.5
- Новое: Binutils 2.24
- Python 2.7.5, в качестве инструмента на стороне хоста
В примечаниях к выпуску содержится ссылка на информацию о gcc 4.7, но я думаю, что эта ссылка лучше показывает, какие конкретные функции поддерживаются. На связанной странице слишком много информации, из-за этого я ее не копирую. Но по сути связь гласит:
GCC обеспечивает экспериментальную поддержку стандарта 2011 ISO C++. Эта поддержка может быть включена с помощью опции компилятора-std=c++11 или -std=gnu++11 режим . GCC C++11 реализует большую часть стандарта C++11, разработанного комитетом ISO C++
В то время как ответ @Marged, по-видимому , охватывает абсолютно все важные аспекты вашего вопроса, я хотел бы добавить, что также можно получить более актуальные версии всех инструментов GNU dev (например, gcc, gdb или make ..). Это официально предоставляется сотрудниками QNX только для «экспериментального использования», я думаю 1 . Но до сих пор у меня был только хороший опыт общения с ними.
(Сначала вам нужно зарегистрироваться на портале сообщества QNX, чтобы открыть ссылку)
Затем вы обновите свою систему Linux dev следующим образом:
- Получить файлы отсюда
- Binutils
- GCC
- это должно создать папку host и target
- например /../qnx650/host/linux/x86/etc/qcc/gcc/default
- $ sudo apt-get install lib32stdc++6
- при неправильной установке могут возникнуть следующие ошибки $ i486-pc-nto-qnx6.5.0-g++: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
1 Официальный текст:»Стабильные версии основных инструментов разработки включены в состав QNX Momentics. Вы можете загрузить обновленные версии этих инструментов, которые в настоящее время разрабатываются в рамках этого проекта, и воспользоваться их улучшениями ранее! «
- Как построить Qt 5.1 для QNX target (arm)
новое обновление Я думаю, что теперь мне следует отредактировать название. Чтобы убедиться, что у меня есть чистая окружающая среда, я загрузите код src qt5.1.1 из qt-prject. экспортируйте QNX_TARGET, QNX_HOST, AND добавьте QNX_HOST в PATH. затем запустите сценарий ./configure -opensource.
Могу ли я использовать nVidia CUDA на QNX (x86_64 или другой) и какой драйвер мне нужен для этого? Я ничего не нашел об этом по ссылке, и в ответе #46 звучит как I don’t know http:/ / www.qnx.com / новости / web_seminars/faq_multicore. html Но, QNX думает включить поддержку семейства процессоров.
Версия gcc, используемая qcc, поддерживает большую часть спецификации C++11. Я использовал его. Просто добавьте -std=c++11 в строку компилятора.
Я нашел одну проблему с поддержкой C++11 на QNX 6.6. Это было в июле 2014 года, так что, возможно, все изменилось. Поддержка векторной инициализации ( std::vector<int> <1,2, 3, 4>; ) в библиотеке C++11, поставляемой с QNX 6.6, была нарушена. Код будет компилироваться чисто, но затем при запуске произойдет довольно загадочный сбой. Опять же, в настоящее время я не знаю текущего состояния этой проблемы, поэтому YMMV.
Похожие вопросы:
Я новичок на платформе QNX, и мы портируем проект Linux на QNX. и нашли код, связанный с созданием общей памяти в linux с помощью системного вызова shmget. но shmget нет в QNX. и я видел подобный.
Я хочу создать параллельную объектно-ориентированную систему в QNX, используя c++ и потоки. Как мне это сделать? Я пытался: pthread_t our_thread_id; pthread_create(&our_thread_id, NULL.
Я должен служить двум господам. Один проект, который, как ожидается, разделится на два после v1.0. Первоначально это был простой встроенный проект, закодированный в C с использованием FreeRTOS. Это.
Как я могу получить образец кода QNX C/C++?
Я рассматриваю возможность использования некоторых функций C++11 (например, auto ) в некоторых кросс-платформенных проектах (Windows+Mac). На Windows Visual Studio поддерживает части предстоящего.
новое обновление Я думаю, что теперь мне следует отредактировать название. Чтобы убедиться, что у меня есть чистая окружающая среда, я загрузите код src qt5.1.1 из qt-prject. экспортируйте.
Могу ли я использовать nVidia CUDA на QNX (x86_64 или другой) и какой драйвер мне нужен для этого? Я ничего не нашел об этом по ссылке, и в ответе #46 звучит как I don’t know http:/ / www.qnx.com /.
Я нахожусь в разработке GUI с QNX (разрешение экрана взаимозависимый дизайн) Как я могу получить разрешение экрана в c. Я использую операционную систему QNX. Возможно ли это? Есть ли какая-либо.
Я пытаюсь построить библиотеку, чтобы использовать SOEM на QNX. Однако, когда я иду строить, я получаю следующую ошибку: Установка библиотек сборки Сканирование зависимостей целевого soem [ 4%].
У меня есть специфический код QNX, и я хочу использовать clang-tidy для статического анализа. Возможно ли это? Я борюсь, потому что clang-tidy поддерживается компилятором clang, а QCC (компилятор.