Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1874660
  • 博文数量: 376
  • 博客积分: 2147
  • 博客等级: 大尉
  • 技术积分: 3642
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-06 10:47
文章分类

全部博文(376)

文章存档

2019年(3)

2017年(28)

2016年(15)

2015年(17)

2014年(182)

2013年(16)

2012年(115)

我的朋友

分类: 嵌入式

2016-08-30 16:20:53

在 FreeRTOS 的源代码中,竟然还有一个 Win32-MSVC 的例子。这样我们就可以在 Windows 系统、Visual C++ 环境中熟悉 FreeRTOS。

首先,从  下载 FreeRTOS 源代码。当前最新的稳定版本是 8.2.3。

下载之后,解压缩,然后在这个目录中,即可看到 Win32-MSVC 的例子:

…\FreeRTOS\Demo\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。

参考文章

阅读(5415) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~