原创 在STM32上运行FreeRTOS操作系统(基于STM32 V3.5.0固件库)

2013-9-22 22:58 5576 14 16 分类: MCU/ 嵌入式
很久以前就想实用FreeRTOS了,优点就不必说了,网上可以搜到一大堆它和ucos-ii以及其他几种嵌入式操作系统的比较。最重要的一点它是免费的,不想ucos那样商业使用需要收费。只是之前本人比较忙而且FreeRTOS对Cortex-M的支持不太好,所有一直没有勇气自己移植。最近看到了FreeRTOS的最新版7.5.2中已经包含了大量的针对Cortex-M微控制器的移植例程,于是按照网上搜的介绍把它和STM32F103的V3.5.0库函数进行了整合,在MDK4.7下进行了成功的编译。并且根据我手头STM32迷你核心板的配置,编写了几个简单的任务在上面跑,感觉FreeRTOS还是很好上手的。一旦熟悉了嵌入式操作系统的编程方式,就不想在单片机上裸奔了。为了方便对FreeRTOS感兴趣的朋友,整个工程的源码在下面,需要的下载后在MDK下直接编译即可。下面我对这些任务做些简单的介绍:

Main函数就是这个程序的入口(废话),进入后首先是硬件初始化,接下来是创建各个任务,最后启动调度器系统就跑起来了,是不是很简单!
Main.jpg 
在这里我创建了3个任务vLEDTask,vButtonTask,vCmdTask,分别是LED闪烁任务(PG15控制一个LED每0.5秒闪一次),按键任务检测核心板上的一个按键PC4(带软件去抖功能),串口任务负责接收串口发来的字符串命令,并对系统命令做出识别和响应。

LED.jpg 
LED任务(运行时可以看到PG15在跳变)

BUTTON.jpg 
BUTTON任务,检测到一次按键便在串口打印一个字符x

UART_Console1.jpg 
串口输入命令,回车后串口任务便会对输入做出响应

UART_Console.jpg 
这里做了一个系统可以识别的tasklist命令,可以显示各个任务运行的状况。


这个例程是在我这个STM32迷你核心板上运行调试的, 正反面.JPG
2013-9-10 14:47 上传
下载附件 (61.52 KB)
经过修改也可以用在别的平台上。
PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户3650432 2016-6-29 13:53

学习了,谢谢

用户377235 2015-12-7 12:18

评论是对思考最好的总结…

用户391779 2008-7-29 13:28

支持
相关推荐阅读
用户412121 2015-09-11 09:59
我今年的作品:智能家居物联网实验板(STM32+ESP8266)
去年就开始关注物联网和智能家居了。一开始看到不少用路由器方案做的智能插座,感觉太浪费芯片资源了。直到有一天无意中看到了ESP8266,感觉这是一个适合单片机的wifi解决方案,应该可以做不少好玩的...
用户412121 2013-10-29 11:41
STM32迷你核心板运行ST emWin + FreeRTOS成功
新板子做好后受到了很多人的关注, 比如板上有哪些资源,有哪些例程等等。有的人还会问是否能外接LCD等等,对于我这些,我的板子都预留了接口肯定是没有问题的。但是口说无凭还是实实在在 的测一次才能令人信服...
用户412121 2013-10-15 14:11
新版STM32迷你核心板做好了
之前也跟大家多多少少介绍过了,这次做的新版就是对前一版不满意地方的小修补(比如印字,焊盘尺寸等等),另外对外扩IO做了微调,可以保证F407的每 种外设都可以扩展(之前是按照F103设计的兼容407但...
用户412121 2013-08-13 11:00
华美A5无线3G路由器升级内存,flash,刷openwrt成功
Hame A5(华美A5)号称最小的3G无线路由器,可惜只有16M SDRAM, 4M FLASH虽然理论上可以刷openwrt,但是限于硬件资源太少运行起来很卡,到最后几乎死机。 于是我尝试给...
用户412121 2013-05-08 17:29
我的STM32核心板升级到F4了(目前可以运行u-boot)
年初做的这个可以跑uCLinux的STM32核心板用的是STM32F103ZET6(http://bbs.ednchina.com/BLOG_ARTICLE_3010701.HTM),当时已经考虑...
EE直播间
更多
我要评论
2
14
关闭 站长推荐上一条 /3 下一条