请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【NUCLEO-L496ZG评测】FreeRTOS之多线程任务调度

[复制链接]
donatello1996 提问时间:2017-5-14 20:06 /
    在嵌入式领域中,嵌入式实时操作系统正得到越来越广泛的应用。采用嵌入式实时操作系统(RTOS)可以更合理、更有效地利用CPU的资源,简化应用软件的设计,缩短系统开发时间,更好地保证系统的实时性和可靠性。
    FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。由于RTOS需占用一定的系统资源(尤其是RAM资源),只有μC/OS-II、embOS、salvo、FreeRTOS等少数实时操作系统能在小RAM单片机上运行。相对μC/OS-II、embOS等商业操作系统,FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行
1.jpg
    CubeMX自带了FreeRTOS的插件,可以直接创建基于STM32的FreeRTOS工程。我这次做的是多线程任务调度,因此可以利用开发板自带的三盏LED灯和开发板自带串口作为任务调度的标志。首先配置PG7和PG8为低功耗串口1,以便在串口打印任务调度情况;然后配置板上三盏LED灯(PB7、PB14、PC7配置为输出)。 1.PNG 2.PNG 3.PNG
    在时钟配置界面配置MSI(内部高频晶振)、PLLCLK(锁相环倍频),主频80MHz,全速运行。
4.PNG
    在外设界面配置FreeRTOS的参数,Config parameters(配置参数)选项卡使用系统默认设置就好;我们重点关注的是Tasks and Queues(任务与队列)选项卡的配置,在此处新建三个任务,设置不同的优先级,配置好堆栈大小(这里要注意一下的是,堆栈大小最好使用默认的128KB,多个任务的总堆栈大小不能超过511KB,否则Heap配置界面会报错,任务也不能正常切换),其它都按默认配置。
5.PNG 6.PNG 7.PNG
    在串口配置窗口配置波特率115200、数据位8、停止位1、无校验位就可以了,可以生成工程了。
8.PNG 9.PNG
    这里我设置了三个任务,红蓝绿灯按照100、200、300毫秒的间隔闪烁,并且串口打印被调度的任务。由于是在RTOS(实时操作系统)下运行的,三个任务按照规定的调度顺序执行,因此互不冲突。
10.PNG
1.gif 11.PNG
    上传一份工程文件。 工程文件.zip (15.58 MB, 下载次数: 260)
收藏 5 评论6 发布时间:2017-5-14 20:06

举报

6个回答
Bowen 回答时间:2017-5-15 12:00:16
不错,学习一下,感谢分享~
songzhaofeng 回答时间:2017-5-15 15:24:45
写错了是128words
HenryChen 回答时间:2017-5-16 12:10:28
感谢分享!!
lifengheart 回答时间:2017-5-28 17:02:18
请问 怎么确定任务需要多大的堆栈呢?
莫~ 回答时间:2018-3-21 17:11:15
谢谢分享
sdfskljh 回答时间:2018-4-22 14:02:10
支持               

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版