FreeRTOS编译器

时间:2017-06-30 07:52:28

标签: rtos freertos compiler-specific

我刚开始学习FreeRtos。我开始使用Richard Barry的“使用FreeRtos实时内核”pdf书。 这本书有很全面的例子,我很好地理解了这些原理,但我希望能够在某处编译这些例子。

现在这可能听起来像一个愚蠢的问题,但我对RTOS完全不熟悉:D。 我可以使用什么编译器来编译freeRtos代码?我搜索了很多,我找到了一些名为Watcom的编译器,并试图在其中运行一些代码但是却找不到任何关于如何使用这个编译器的例子。

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

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

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

FreeRTOS本身没有“控制台”的概念;您的应用程序必须实现对stdio或低级I / O的支持,通常是通过开发主机上运行的UART和终端仿真器,或通过调试器使用半主机。这是移植标准库的一个因素,而不是FreeRTOS的问题。标准库应该有一些形式的层(在Newlib中称为“系统调用”,或者在ARM / Keil工具链中称为“重新定位”)。

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

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

答案 2 :(得分:0)

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

System Workbench for STM32