关于Frtos编译器的初学者问题

Beginner questions about Frtos compiler(s)

我想学习 FreeRtos 我刚开始在线阅读一些 pdf 书籍。我是这方面的新手,我有一个问题:

我用谷歌搜索发现 "Visual Studio 2010 Express" 编译器支持 FreeRtos。这是否意味着如果我在这个编译器中编写一些 C FreeRTOS 代码,就像我编写一个普通的 .c 程序一样,它能正常工作吗?还请在谈论 RTOS 时解释什么是 "port"。

请帮我解决这个问题,因为我正计划开始编译我在 pdf 书中阅读的示例。谢谢。

是的,您可以在 Windows 环境中 运行 FreeRTOS,但不要指望在这样做时会出现实时行为。 FreeRTOS 调度程序将像正常情况一样调度任务,但最终它将 运行 进入 Windows 进程,Windows 本身可以控制该进程。如果您正在阅读最新一本书(可免费下载),那么它会告诉您这一点,并且示例已经在 windows(模拟器)环境中预先配置为 运行。您还可以在此处的 Windows 过程中找到有关 运行ning FreeRTOS 的更多信息:http://www.freertos.org/FreeRTOS-Windows-Simulator-Emulator-for-Visual-Studio-and-Eclipse-MingW.html

虽然@Richard 的回答表明 FreeRTOS 可以在 Windows 环境中使用,但这不是典型的用例。

FreeRTOS 通常用于没有其他操作系统的嵌入式微控制器(即电器、外围设备、玩具、工业控制器等)。它提供了用于管理时间关键功能的多个任务的基本功能。

如果您还没有做过任何嵌入式开发,我建议您先选择微控制器开发板并学习如何为其开发简单的东西,然后再将 FreeRTOS 加入其中。这可能是一个陡峭但有益的学习曲​​线。

嵌入式应用程序是标准的 C,但它不是 "normal C program" 在您的 PC 上 运行 的意义上。你把程序编译并烧写到芯片上,它会在上电或复位时自动执行main()。没有单独的 OS,并且您通常没有 stdio 或任何类似 PC 的用户界面。您的应用程序是唯一 运行ning 并且负责一切。像 FreeRTOS 这样的库可以帮助完成一些复杂或困难的任务,或者简单但常见的任务。 (芯片厂商会提供配置和控制其基本功能的库。)

FreeRTOS "port" 是 FreeRTOS 对特定微控制器系列的改编,针对特定的定时器、控制寄存器或其他硬件功能(或缺少其中)芯片提供。核心FreeRTOS文件不变,大家根据自己使用的芯片选择"port"文件。您的应用程序将包括 link 必要的 FreeRTOS 代码文件,就像任何其他库一样。

关于编译器和其他开发工具,您将使用目标芯片的任何常规工具。 Visual Studio Express 并不是真正打算用于嵌入式开发,而且我不认为它开箱即用地支持它(没有交叉编译器)。我使用了一个名为 VisualGDB, with an STM32 Discovery board 的第三方插件来编译和 运行 简单的基于 FreeRTOS 的应用程序 - 这工作得很好,并且很容易获得 运行ning .

最终我发现这是一个不常见的解决方案,而且当我遇到困难时很难找到帮助。我正在过渡到标准 GNU ARM Toolchain(使用 Visual Studio 代码作为编辑器),并自己完成工具学习曲线。