Портирование программного обеспечения Windows на встроенные операционные системы / системы реального времени - PullRequest
3 голосов
/ 20 сентября 2008

У меня есть существующая кодовая база, ориентированная на среду Windows, и с надеждой на будущее, я хотел бы сделать ее максимально кроссплатформенной. У меня был некоторый успех со стандартными дистрибутивами Linux с использованием кроссплатформенных библиотек, но я хотел бы расширить это на Realtime и / или встроенные операционные системы.

Можно ли было бы перенести большую часть кодовой базы на такие системы или для этого потребовались бы повторные внедрения, нацеленные на эту среду? Если необходимо воссоздать детали, требует ли разработка для этих систем другого типа подхода к проектированию? Некоторые поставщики предоставляют свои собственные IDE для разработки, являются ли они необходимостью, или мы можем или можно стандартизировать процесс сборки типа инструментария GNU?

Потенциальной ямой могут быть различия в обращении с МПК, но без дальнейшего воздействия сложно разобраться в специфике.

Обратите внимание, что в настоящее время на базе Windows нет особого использования Win32 API (в основном COM) или типов Windows.

Спасибо

edit :: кодовая база C \ C ++

Ответы [ 6 ]

1 голос
/ 25 сентября 2008

Самый важный шаг - отделить все функции зависимости ОС от логики проекта.

После того, как вы это сделаете, вы сразу увидите, сколько кода вам нужно перенести для перехода на новую ОС, и вы сможете красиво начать перенос.

1 голос
/ 21 сентября 2008

Если вы используете интерфейс Windows COM (я полагаю, вы говорите не о последовательном порту, а об общей объектной модели), возможно, ваш код должен быть абстрагирован от этого.

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

Прежде всего, вам понадобится какая-то ОСРВ, поскольку ваше приложение является многозадачным. Когда вы сделали порт для Linux, вы можете захотеть использовать версию Linux в реальном времени. Это сведет к минимуму количество портов, которые вам придется делать.

Если вы не хотите использовать Linux в качестве встроенной платформы, сделайте ваш код POSIX-совместимым (Linux is) и убедитесь, что выбранная вами RTOS поддерживает POSIX. Таким образом, порт для Linux и встроенная платформа будут в основном одинаковыми.

Итог, COM будет вашим альбатросом.

Поскольку вы не упоминаете об использовании графического интерфейса, мы не будем обращаться к , который может содержать черви:)

1 голос
/ 20 сентября 2008

Если приложение в основном C и posix, это не так уж сложно. Сегодня встроенные платформы могут означать почти полную копию XP или Linux, работающую на компактной флэш-карте.

Для графического интерфейса QT и WX имеют встроенные версии, которые рисуют виджеты напрямую.

0 голосов
/ 25 сентября 2008

Если вы можете указать, какую ОС реального времени / встроенную ОС вы используете, рассматривали ли вы Windows CE?

0 голосов
/ 20 сентября 2008

Мне не нравится использовать инструменты разработки GNU в Windows, поскольку MS Dev Studio намного лучше, чем любые инструменты GNU, но недавно я играл с Wascana Desktop Developer , основанным на Eclipse и GCC. и это показывает обещание.

0 голосов
/ 20 сентября 2008

Зависит от возможностей вашей встроенной платформы. Если это 8-битная версия, у вас впереди трудный путь, но если она 32-битная, с приличной оперативной памятью и т. Д., Доступно множество кроссплатформенных библиотек с открытым исходным кодом.

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

...