0

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

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

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

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

4

3 回答 3

2

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

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

于 2017-06-30T08:07:12.933 回答
2

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

FreeRTOS 本身没有“控制台”的概念;您的应用程序必须实现对stdioI/O 或低级 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 移植。

于 2017-07-05T14:30:16.173 回答
1

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

STM32 系统工作台

于 2019-04-09T07:51:42.097 回答