FreeRtos常用功能整理

1、常规启动流程

2、任务创建  常用--动态创建

任务删除

3、信号量

说明:信号量通常用于规避一些资源(比如 UART、DMA、FLASH...)在不同进程时同时调用造成的冲突;比如 TASK_A 正在调用 UART,此时 TASK_B 又来调用 UART,导致串口冲突了

3.1 二值信号量 

说明:二值信号量先 take 先得,take 后要 give 给其他任务用

3.2 计数信号量

说明:即表示一个资源可以给多个任务同时使用,但是有数量限制

3.3 互斥信号量

说明:在“高任务”等待“低任务”的互斥信号量时,会暂时先把“低任务”临时提升到和“高任务”同等级,在获取完互斥信号量后,“低任务”等级恢复原来的低等级,避免任务优先级翻转

4、事件组

说明:事件组即类似常用的全局变量 bit0 ~ bitx 的标志位,标志“某个事件”or“一系列事件”发生的标志

5、队列

说明:任务之间通过队列交互信息数据

5.1 交互一个结构体的项数据

5.2  交互字节流

6、任务通知

说明:用于任务A 通知 任务B,任务B可以去做xxx操作了

相比于事件组,任务通知的效率性能更快,而且可以直接在中断中调用

7、应用说明

1、当某个“资源”,特别是外设接口,比如 Uart串口发送、读写Flash等资源,不允许多个同时调用时,通过信号量来管理资源的使用权----获取、释放——使用信号量

2、当任务之间有数据交互,通常有一定字节数,比如交互通信报文数据——使用队列

3、当需要通知速度较快,有性能要求时,任务A在xxx情况下,通知任务B可以执行xxx操作了,只能针对单一条件去通知——使用任务通知

4、当某个任务需要等待一个或多个条件,才能够进行xxx操作时,比如任务A需要等待任务B去置位bit0、bit1、...bitx时才能进行xxx操作——使用事件组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值