FreeRTOS
核心机制
队列
因为FreeRTOS系统中,用户可以使用多个任务来完成不同的功能,但是有时需要共享数据,例如任务A读取数据,任务B读取数据,此时就用到队列,任务A将数据读入队列,任务B将数据从队列中读出来。
这样有一个好处,就是如果当AB其中一个任务卡一小会,任务会暂时存储在队列里,等任务继续运行的时候能够正常工作。
1 | |
互斥量
互斥量可以想象成为一把锁,当任务A拿了锁,任务B就不可以使用,只有当任务A还了回来,任务B才可以使用
1 | |
二值信号量
二值信号量可以想象成是一个接力棒,效果是A任务执行到某个部分的时候,才让B可以执行
比如任务A用来初始化某个传感器,B用来读取传感器,所以一定要A先执行好B才能执行
1 | |
事件组
功能方面:
事件组可以想想成等待 某些条件都达成 或 其中一个条件达成才会
比如当要上传读取的传感器的值,我们需要联网这个条件,和拿到传感器的值这个条件,这两个条件都具备的时候才能上传
在使用方面:
可以把事件组当做一个24 Bit的二进制开关,每一Bit代表一个独立的时间,Bit位为1代表满足,0代表不满足
1 | |
FreeRTOS
https://codechangeworld.pages.dev/2026/08/11/FreeRTOS/