【问题标题】:Porting Windows software to Embedded/Realtime Operating Systems将 Windows 软件移植到嵌入式/实时操作系统
【发布时间】:2010-09-11 12:26:11
【问题描述】:

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

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

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

注意,虽然目前基于 Windows,但没有特别大量使用 Win32 API(主要是 COM)或 Windows 类型。

谢谢

edit:: 代码库是 C\C++

【问题讨论】:

    标签: embedded cross-platform rtos


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

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

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

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

        归根结底,COM 将是你的信天翁。

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            【解决方案5】:

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

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

            【讨论】:

              【解决方案6】:

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

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

              【讨论】:

                猜你喜欢
                • 2012-03-20
                • 1970-01-01
                • 1970-01-01
                • 2016-02-16
                • 1970-01-01
                • 2011-08-30
                • 2011-05-27
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多