本帖最后由 不爱说话 于 2013-9-10 14:47 编辑
很久以前就想实用FreeRTOS了,优点就不必说了,网上可以搜到一大堆它和ucos-ii以及其他几种嵌入式操作系统的比较。最重要的一点它是免费的,不想ucos那样商业使用需要收费。只是之前本人比较忙而且FreeRTOS对Cortex-M的支持不太好,所有一直没有勇气自己移植。最近看到了FreeRTOS的最新版7.5.2中已经包含了大量的针对Cortex-M微控制器的移植例程,于是按照网上搜的介绍把它和STM32F103的V3.5.0库函数进行了整合,在MDK4.7下进行了成功的编译。并且根据我手头STM32迷你核心板的配置,编写了几个简单的任务在上面跑,感觉FreeRTOS还是很好上手的。一旦熟悉了嵌入式操作系统的编程方式,就不想在单片机上裸奔了。为了方便对FreeRTOS感兴趣的朋友,整个工程的源码在下面,需要的下载后在MDK下直接编译即可。下面我对这些任务做些简单的介绍:
Main函数就是这个程序的入口(废话),进入后首先是硬件初始化,接下来是创建各个任务,最后启动调度器系统就跑起来了,是不是很简单!
在这里我创建了3个任务vLEDTask,vButtonTask,vCmdTask,分别是LED闪烁任务(PG15控制一个LED每0.5秒闪一次),按键任务检测核心板上的一个按键PC4(带软件去抖功能),串口任务负责接收串口发来的字符串命令,并对系统命令做出识别和响应。
LED任务(运行时可以看到PG15在跳变)
BUTTON任务,检测到一次按键便在串口打印一个字符x
串口输入命令,回车后串口任务便会对输入做出响应
这里做了一个系统可以识别的tasklist命令,可以显示各个任务运行的状况。
STM32_FreeRTOS.rar
(1.28 MB)
这个例程是在我这个STM32迷你核心板上运行调试的,
经过修改也可以用在别的平台上。
|