在 FreeRTOS 的源代码中,竟然还有一个 Win32-MSVC 的例子。这样我们就可以在 Windows 系统、Visual C++ 环境中熟悉 FreeRTOS。
首先,从 FreeRTOS 在 sourceforge.net 上的主页 下载 FreeRTOS 源代码。当前最新的稳定版本是 8.2.3。
下载之后,解压缩,然后在这个目录中,即可看到 Win32-MSVC 的例子:
用 Visual Studio (2010及以上的版本) 打开 WIN32.sln 这个文件。如果你没有付费版本的 Visual Studio,用免费的 Visual Studio Express 或者 Visual Studio Community 也行。
在我们要运行第一个例子的时候,在 main.c 这个文件中,找到 mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 这个宏,将它的值改为:1
应该很好找的,就在文件开头。
#define mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 1
- 1
编译这个工程文件。编译应该非常顺畅,不会遇到任何问题。
接下来,在 Debug 模式下运行,你就会看到弹出了一个命令行窗口,如下:
真好,FreeRTOS 的示例程序已经跑起来了。
接下来,我们就可以通过 Debug 的方式,Go through 代码,来熟悉 FreeRTOS 了。
首先我们找到 main() 函数,在 int main( void ) 这个函数中看到这么一段:
/* The mainCREATE_SIMPLE_BLINKY_DEMO_ONLY setting is described at the top of this file. */ #if ( mainCREATE_SIMPLE_BLINKY_DEMO_ONLY == 1 ) { main_blinky(); } #else { main_full(); } #endif
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
接下来我们来到这个函数:void main_blinky( void )
在这里,我们就可以看到 FreeRTOS 的任务是怎么创建的。即:xTaskCreate 函数的应用。
这是个不错的切入点。
这只是个最简单的例子(blink)。熟悉这个例子以后,我们可以把 mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 这个宏 再改回原来的值:0
#define mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 0
- 1
再编译,运行,我们就能运行 int main_full( void ) 这个函数中实现的例子。这个例子更复杂、更全面一些。
相信借助强大而友好的 Visual Studio 我们能够很快熟悉 FreeRTOS。