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

[复制链接]
4376|17
 楼主| 不爱说话 发表于 2013-9-9 21:16 | 显示全部楼层 |阅读模式
本帖最后由 不爱说话 于 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函数就是这个程序的入口(废话),进入后首先是硬件初始化,接下来是创建各个任务,最后启动调度器系统就跑起来了,是不是很简单!
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_FreeRTOS.rar (1.28 MB, 下载次数: 286)
这个例程是在我这个STM32迷你核心板上运行调试的, 正反面.JPG 经过修改也可以用在别的平台上。
wxweipot 发表于 2013-9-10 12:11 | 显示全部楼层
liuruoshui1987 发表于 2013-9-10 12:27 | 显示全部楼层
支持一下楼主!
 楼主| 不爱说话 发表于 2013-9-10 14:45 | 显示全部楼层
谢谢大家支持啊!
j1755659290 发表于 2013-9-10 17:58 | 显示全部楼层
hkcj 发表于 2013-9-10 18:38 | 显示全部楼层
很给力的学习帖子  很不错哦   楼主  向你学习  学习  呵呵
hkcj 发表于 2013-9-10 18:38 | 显示全部楼层
抽空好好将上面的知识点消化消化  自己应该可以掌握很多的东西   
ren0zhe 发表于 2013-9-10 19:30 | 显示全部楼层
 楼主| 不爱说话 发表于 2013-9-11 13:14 | 显示全部楼层
看到这么多人回复,还有更多的人下载了帖子里的源码。感觉很欣慰。我一直认为受人以鱼不如授人以渔,大家都怀着一颗包容开放的心,无保留的分享,大家的水平才能提高,否则只能闭门造车原地踏步。
我希望大家能在我这个基础上做出更好的程序然后分享给更多的人。
j1755659290 发表于 2013-9-12 09:57 | 显示全部楼层
楼主楼主   你那个general purpose I/O G窗口是什么啊?怎么弄出来的?
 楼主| 不爱说话 发表于 2013-9-12 12:00 | 显示全部楼层
那是Keil MDK的仿真窗口,在仿真时点Peripherals菜单。
j1755659290 发表于 2013-9-12 12:22 | 显示全部楼层
不爱说话 发表于 2013-9-12 12:00
那是Keil MDK的仿真窗口,在仿真时点Peripherals菜单。

恩 恩  等下回家试试,谢谢楼主~~
trumpxp 发表于 2013-9-12 18:55 | 显示全部楼层
支持楼主  一个   感觉比较给力  确实是好东西   这个毋庸置疑的啦   楼主 啊
qq20707 发表于 2013-9-12 21:23 | 显示全部楼层
FreeRTOS学习中
cuihao0922 发表于 2014-7-28 11:06 | 显示全部楼层
学习下FreeRTOS,支持下大神的无私……
 楼主| 不爱说话 发表于 2014-8-4 15:46 | 显示全部楼层
谢谢这1年多大家的支持!
ikkl220 发表于 2014-8-7 13:16 | 显示全部楼层
楼主,在freertos中移植uip 有过吗?怎么移的?脑壳都是大的现在。
  stm32f103ve+uip+freertos
alber5099 发表于 2014-10-31 08:56 | 显示全部楼层
謝謝,我正在做這個
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:飞翼电子工作室 http://shop68798667.taobao.com/

115

主题

886

帖子

34

粉丝
快速回复 在线客服 返回列表 返回顶部