如何使用 FreeRTOS 库同步任务?
How to sync tasks using FreeRTOS library?
我有 5 个不同的 5 个任务(功能)同时 运行ning。我想像任何函数一样实现 start 运行ning 然后其他函数不应该 运行 直到函数完成它的过程。
我想使用 FreeRTOS 来实现。
示例。
- foo1.c
->任务 1
- foo2.c
->任务 2
- foo3.c
->任务 3
- foo4.c
->任务 4
- foo5.c
->任务 5
听起来你需要 mutex。每个任务在开始 运行 时获取互斥量,并在完成时释放它。当任何任务 运行 时,其他任务将在互斥锁上被阻塞。
您需要使用互斥(互斥)信号量。
Here is an example 保护 ATmega Arduino 克隆的串口。这确保了多个任务提交给串行端口的消息不会交错(损坏)。
You can see that the semaphore is taken 在尝试写入串行端口之前,然后在任务完成其活动时给出(释放)。
我有 5 个不同的 5 个任务(功能)同时 运行ning。我想像任何函数一样实现 start 运行ning 然后其他函数不应该 运行 直到函数完成它的过程。 我想使用 FreeRTOS 来实现。 示例。
- foo1.c ->任务 1
- foo2.c ->任务 2
- foo3.c ->任务 3
- foo4.c ->任务 4
- foo5.c ->任务 5
听起来你需要 mutex。每个任务在开始 运行 时获取互斥量,并在完成时释放它。当任何任务 运行 时,其他任务将在互斥锁上被阻塞。
您需要使用互斥(互斥)信号量。
Here is an example 保护 ATmega Arduino 克隆的串口。这确保了多个任务提交给串行端口的消息不会交错(损坏)。
You can see that the semaphore is taken 在尝试写入串行端口之前,然后在任务完成其活动时给出(释放)。