2008-09-20 104 views
3

我有一个针对Windows环境并着眼于未来的现有代码库,希望将其作为跨平台。 通过使用跨平台库,我已经获得了一些标准Linux发行版的成功,但是希望将其扩展到Realtime和/或嵌入式操作系统。将Windows软件移植到嵌入式/实时操作系统

是否可以移植的大部分代码库这样的系统,或者它需要针对该环境reimplentations?如果部件需要重新创建,这些系统的开发是否需要不同类型的设计方法?一些供应商提供他们自己的IDE用于开发,这些都是必需的,或者我们是否能够在GNU工具链构建过程中实现标准化?

一个潜在的坑洞可能是IPC处理分歧,但没有进一步暴露,很难得到具体的句柄。

NB尽管视窗目前设,没有特别重使用Win32 API(主要是COM)或Windows类型。

感谢

编辑::代码库是C \ C++

回答

1

如果您使用Windows COM接口(我假设您不是在这里讨论串口,而是通用对象模型),那么您的代码可能需要从中抽象出来。

至于你说到的IPC,那么很明显,这是一个多任务/多线程处理类型的代码库。在这种情况下,你将不得不想办法来应对环境差异。

首先,你的需要某种RTOS,因为你的应用程序是多任务处理。当你做了一个Linux端口的时候,你可能需要考虑使用一个实时Linux版本。这样可以尽量减少你需要做的端口数量。

如果您不想使用Linux作为您的嵌入式平台,请使您的代码符合POSIX(Linux标准)并确保您选择的RTOS支持POSIX。这样,到Linux和嵌入式平台的端口将大致相同。

底线,COM将是你的信天翁。

既然你不提使用GUI的,我们不会解决可以蠕虫:)

1

如果应用程序主要是C和POSIX那么它是不是太硬。今天的嵌入式平台可能意味着在CompactFlash卡上运行的XP或Linux的几乎完整副本。

对于Qt和WX具有嵌入式直接绘制控件版本的GUI。

0

取决于您的嵌入式平台的功能。如果它是8位的,那么前面的道路很艰难,但是如果它有32位的体面内存等,那么就有很多开源的跨平台库可用。

我用DirectFB我最后的嵌入式GUI应用程序,它重量轻,确定的,但不能跨平台的。下次我想我会尝试wxWidgets

0

我不喜欢在Windows上使用GNU开发工具,因为MS Dev Studio比任何GNU工具都好得多,但最近我一直在玩基于Eclipse和GCC的Wascana Desktop Developer,并且它显示了承诺。

1

最重要的步骤是从项目逻辑中分离出来的所有操作系统的依赖功能。

当你这样做后,你会立即看到你需要移植多少代码才能迁移到新的操作系统,并且你将能够很好地移植。

0

如果您处于指定您使用哪种实时/嵌入式操作系统的位置,您考虑过Windows CE吗?