3

我有一个针对 Windows 环境的现有代码库,并着眼于未来,希望使其尽可能跨平台。通过使用跨平台库,我在标准 Linux 发行版上取得了一些成功,但希望将其扩展到实时和/或嵌入式操作系统。

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

一个潜在的坑洞可能是 IPC 处理的差异,但如果没有进一步的暴露,很难掌握细节。

注意虽然目前基于 Windows,但 Win32 API(主要是 COM)或 Windows 类型的使用并不特别多。

谢谢

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

4

6 回答 6

1

如果应用程序主要是 C 和 posix,那么它并不太难。今天的嵌入式平台可能意味着在紧凑型闪存卡上运行的 XP 或 Linux 的几乎完整副本。

对于 gui,QT 和 WX 都具有直接绘制小部件的嵌入式版本。

于 2008-09-20T00:44:38.593 回答
1

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

当您谈论 IPC 时,显然这是一个多任务/多处理类型的代码库。在这种情况下,您将不得不想出一种方法来处理环境差异。

首先,您需要某种 RTOS,因为您的应用程序是多任务的。当您移植到 Linux 时,您可能想研究使用实时 Linux 版本。这将最大限度地减少您必须执行的端口数量。

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

最重要的是,COM 将是你的信天翁。

由于您没有提到 GUI 的使用,因此我们不会解决蠕虫的问题 :)

于 2008-09-21T17:11:08.960 回答
1

最重要的一步是将所有操作系统依赖函数从项目逻辑中分离出来。

完成此操作后,您将立即看到需要移植多少代码才能迁移到新操作系统,并且您将能够很好地开始移植。

于 2008-09-25T17:13:37.300 回答
0

取决于您的嵌入式平台的功能。如果它是 8 位的,那么你的路还很艰辛,但如果它是 32 位的,具有不错的 RAM 等,那么有很多开源跨平台库可用。

我在我最后一个嵌入式 GUI 应用程序中使用了DirectFB,它轻巧且可以,但不是跨平台的。下次我想我会试试wxWidgets

于 2008-09-20T01:19:11.380 回答
0

我不喜欢在 Windows 上使用 GNU 开发工具,因为 MS Dev Studio 比任何 GNU 工具都好,但最近我一直在使用基于 Eclipse 和 GCC 的Wascana Desktop Developer ,它显示出前景。

于 2008-09-20T01:24:51.927 回答
0

如果您要指定使用哪种实时/嵌入式操作系统,您是否考虑过 Windows CE?

于 2008-09-25T17:56:23.437 回答