【问题标题】:FreeRTOS compiler [closed]FreeRTOS 编译器 [关闭]
【发布时间】:2017-06-30 07:52:27
【问题描述】:

我刚开始学习 FreeRtos。我从 Richard Barry 的“Using the FreeRtos Real Time Kernel”pdf 书开始。 这本书有全面的例子,我很好地理解了这些原则,但我希望能够在某个地方编译这些例子。

现在这听起来像是一个愚蠢的问题,但我对 RTOS 完全陌生 :D。 我可以使用什么编译器来编译 freeRtos 代码?我用谷歌搜索了很多,我找到了一个名为 Watcom 的编译器,并尝试在其中运行一些代码,但找不到也找不到任何有关如何使用此编译器的示例。

所以基本上我想要的是一些实际示例,展示如何在编译器中运行简单的 freeRtos 代码,然后运行它并在控制台中查看实际结果。

任何链接将不胜感激。感谢您的阅读!

【问题讨论】:

    标签: rtos freertos compiler-specific


    【解决方案1】:

    FreeRTOS 支持多种编译器。每个官方支持的端口的官方支持的编译器都列在Official FreeRTOS Ports page 上。

    您可以使用列出的任何编译器(可能更多,但官方不支持)。一般来说,您应该能够继续使用您已经使用的东西,因为 FreeRTOS 通常支持您使用的任何平台的标准供应商提供的编译器。

    【讨论】:

    • 感谢您的回答。我现在不那么困惑了。我在您提供的列表中看到 FreeRTOS 支持“Visual Studio 2010 Express”编译器。如果我在这个编译器中编写一些 C FreeRTOS 代码,就像我会做一个普通的 .c 程序一样,它会正常工作吗?在谈论 RTOS 时,请解释什么是“端口”。谢谢。
    • @Cantafford :使用 Visual Studio(或至少 Visual C++ - VS 是 IDE 而不是编译器)构建 FreeRTOS 应用程序仅适用于 Win32Port。这是一个模拟平台,不执行真正的实时调度。您的问题的简单答案是您使用适合您的目标平台的工具链。您当然可以使用带有VisualGDB 的 Visual Studio Community Edition 进行嵌入式开发。
    • FreeRTOS“端口”是 FreeRTOS 代码库到特定架构或平台的端口。首先弄清楚您要在什么硬件上运行 FreeRTOS,然后选择支持您的平台并且受 FreeRTOS 支持的编译器。即使不支持,移植 FreeRTOS 代码(从而生成新的“端口”)也是可行的,但除非您选择特别模糊的目标和工具链组合,否则不太可能需要。
    • @Cantafford 请注意,您应该将新问题 作为 问题发布,而不是将它们隐藏在 cmets 中。
    【解决方案2】:

    通常您在独立环境中运行 FreeRTOS 应用程序 - 即,系统直接引导到您的应用程序,而不是由操作系统加载(在某些情况下可能存在中间引导加载程序)。

    FreeRTOS 本身没有“控制台”的概念;您的应用程序必须实现对 stdio 或低级 I/O 的支持,通常通过 UART 和在开发主机上运行的终端仿真器或通过调试器使用半主机。这是移植标准库的问题,而不是 FreeRTOS 的问题。标准库应该有某种类型的 pirting 层(例如在 Newlib 中称为“syscalls”,或在 ARM/Keil 工具链中称为“Retargetting”)。

    FreeRTOS 应用程序是使用交叉开发工具而不是托管开发环境构建的。也就是说,代码是使用交叉编译器在开发主机上构建的,然后加载到目标硬件并执行。 FreeRTOS 有一个 Win32 端口,允许在 Windows 主机上构建和执行 FreeRTOS 应用程序,但该端口只是一个模拟,不提供硬实时调度。它对于在硬件可用之前进行开发以及使用 Visual Studio 提供的通常可用于嵌入式目标的更复杂的调试环境进行测试和调试很有用。

    您通常会选择一个 FreeRTOS 支持并满足您的应用程序需求的硬件平台,然后选择一个支持您的硬件平台的工具链 反过来又受 FreeRTOS 支持。对于大多数 32 位平台和 8 位 AtmelAVR 平台,GNU gcc 几乎无处不在,许多专有编译器支持 GNU 扩展以实现兼容性。除非您选择一个特别模糊的工具链/目标组合,否则您不太可能无法移植到使用现有的 FreeRTOS 端口。

    【讨论】:

      【解决方案3】:

      如果您使用的是基于 STM32 的开发板,则可以使用 System Workbench for STM32。 System Workbench 使用基于 GCC 的编译器,使用起来非常愉快。您可以从以下链接轻松下载完全跨平台的 IDE 和编译器工具:

      System Workbench for STM32

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-01-01
        • 2023-04-06
        • 2011-02-07
        • 1970-01-01
        • 1970-01-01
        • 2010-09-05
        • 1970-01-01
        相关资源
        最近更新 更多