STM32开发笔记(四)——FreeRTOS

本文介绍了STM32上FreeRTOS的任务调度原理,包括时间片调度和抢占式调度,并详细阐述了FreeRTOS提供的原语,如互斥锁、信号量、消息队列和事件标记等,用于实现线程间的同步和通信。

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

STM32开发笔记(四)——FreeRTOS

小狼@http://blog.youkuaiyun.com/xiaolangyangyang


一、FreeRTOS调度原理
        FreeRTOS调度分为时间片调度和抢占调度两种。
        时间片调度:在tick(周期1ms)到来时会检查线程时间片是否用完以进行调度;
        抢占式调度:1、在tick到来时,检查是否有处于就绪态的高优先级线程以完成调度;2、使用定时器中断实现了us级延时的线程,在定时器中断中进行调度;3、高优先级线程睡眠时进行调度切换到低优先级线程。

二、FreeRTOS原语
        MUTEX(互斥锁):用于资源互斥,不能在中断中等待互斥锁;
        SEMA(信号量):用于互斥时信号量最大值为1;用户线程同步时,信号量初始值自定义,初始值为1,同步线程发送信号量,被同步线程释放信号量;可在中断中发送信号量,但是不能在中断中等待信号量
        MsgQ(消息队列):用于线程同步及通信,与SEMA区别是在用于线程同步时,还可以携带消息用于通信;可在中断中发送消息,但是不能在中断中等待消息;
        EVENT(事件标记):有时称为全局变量,用于线程间同步,线程等待标记满足条件,可在中断中设置事件标记,但不能在中断中等待事件标记。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值