我想学习FreeRtos我刚刚开始在线阅读一些pdf书籍。我是这个领域的初学者,我有一个问题:
我google搜索并发现“Visual Studio 2010 Express”编译器支持FreeRtos。这是否意味着如果我在这个编译器中编写一些C FreeRTOS代码就像我会做一个正常的.c程序一样,它会正常工作吗?在谈论RTOS时,请解释什么是“端口”。
请帮我澄清一下,因为我打算开始编写我在pdf书中读到的示例。谢谢。
答案 0 :(得分:2)
虽然@Richard的回答表明FreeRTOS可以在Windows环境中使用,但这不是典型的用例。
FreeRTOS通常用于嵌入式微控制器(即设备,外围设备,玩具,工业控制器等),其中不存在其他操作系统。它提供了管理时间关键功能的多个任务的基本功能。
如果您尚未进行任何嵌入式开发,我建议您先选择一个微控制器开发板并学习如何开发简单的东西,然后将FreeRTOS添加到混合中。这可能是一个陡峭但有益的学习曲线。
嵌入式应用程序是标准C,但它不是正常的C程序"从某种意义上说,你可以在你的电脑上运行。您将程序编译并闪存到芯片,并在上电或复位时自动执行main()
。没有单独的操作系统,您通常没有stdio
或任何类似PC的用户界面。您的应用程序是唯一正在运行的应用程序,负责字面上所有内容。像FreeRTOS这样的库可以帮助完成一些复杂或困难的任务,或简单但常见的任务。 (芯片制造商将提供用于配置和控制其基本功能的库。)
FreeRTOS" port"是FreeRTOS与特定微控制器系列的改编,可根据芯片提供的特定定时器,控制寄存器或其他硬件功能(或缺少硬件功能)进行调整。核心FreeRTOS文件没有变化,您将选择"端口"基于您正在使用的芯片的文件。您的应用程序将包含并链接到必要的FreeRTOS代码文件,就像任何其他库一样。
关于编译器和其他开发工具,您将使用目标芯片的任何常规工具。 Visual Studio Express并非真正用于嵌入式开发,我不相信它支持开箱即用(没有交叉编译器)。我使用了一个名为VisualGDB的第三方插件,带有STM32 Discovery板,用于编译和运行基于FreeRTOS的简单应用程序 - 这种方法运行良好,并且很容易运行。
最终我发现这是一个不常见的解决方案,当我遇到困难时很难找到帮助。我正在转换到标准GNU ARM Toolchain(使用Visual Studio Code作为编辑器),并自己完成工具学习曲线。
答案 1 :(得分:1)
是的,您可以在Windows环境中运行FreeRTOS,但是当您这样做时,不要期望实时行为。 FreeRTOS调度程序将按正常方式安排任务,但最终它将在Windows自身可控制的Windows进程中运行。如果您正在阅读最新的书籍(可免费下载),那么它会告诉您这一点,并且示例已经预先配置为在Windows(模拟器)环境中运行。您还可以在此处找到有关在Windows进程中运行FreeRTOS的更多信息:http://www.freertos.org/FreeRTOS-Windows-Simulator-Emulator-for-Visual-Studio-and-Eclipse-MingW.html