基于STM32的freertos实时系统,双线程参考实例

本文详细介绍了如何在STM32上使用FreeRTOS实现双线程的抢占式调度。通过调整任务优先级,展示了任务1如何因优先级提升而抢占执行。同时,探讨了任务的四种状态:运行态、就绪态、阻塞态和挂起态,并通过osDelay函数使任务主动让出CPU资源。最后,引入时间片调度,解释了当两个任务都是VIP(高优先级)时,如何通过时间片实现任务间的交替执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上回说到我的任务1不见了,只有任务2,这次要找它出来!

上篇链接:https://blog.youkuaiyun.com/a_happy_ant/article/details/120719576?spm=1001.2014.3001.5501

找出来的方式有很多种,先说说抢占式调度(CubeMx默认设置是这个)

一、抢占式调度

还是先来看看osThreadDef的定义:
在这里插入图片描述

上一章我们大概清楚了第一个参数 name 的作用,os_thread_def_##name 是声明了一个变量,#name是把这么宏参数变为字符串,用作任务的名称!

第二个参数 thread 就是任务的具体函数了

第三个参数 priority 看注释知道是任务的优先级,通过默认函数的第三个参数 osPriorityNormal,跳转到定义:

在这里插入图片描述

可以看到,osPriorityNormal 实际上就是0,看注释也可以知道,数值越大,优先级也越高(如果不知道优先级是什么东西,那就先去看看优先级吧),注意了

FreeRTOS中,数值越大,优先级也越高,FreeRTOS总是运行优先级最高的任务(抢占式)

优先级的设定就相当于

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值