1. 任务信号量简介
任务内嵌信号量本质上就是一个信号量,任务信号量是分配于每一个任务的任务控制块结构体中的, 因此每一个任务都有独自的任务内嵌信号量
注意:任务内嵌信号量只能被该任务获取,但是可以由其他任务或者中断释放
2. 任务信号量相关API函数介绍
注意:
- 释放任务信号量API函数可以用于任务和中断服务函数中
- 接收任务信号量API函数只能用在任务中
2.1 获取任务内嵌信号量函数
OS_SEM_CTR OSTaskSemPend( OS_TICK timeout,
OS_OPT opt,
CPU_TS* p_ts,
OS_ERR* p_err )
2.2 释放任务内嵌信号量函数
OS_SEM_CTR OSTaskSemPost( OS_TCB* p_tcb,
OS_OPT opt,
OS_ERR* p_err )
2.3 强制设置任务内嵌信号量的资源数函数
OS_SEM_CTR OSTaskSemSet( OS_TCB* p_tcb,
OS_SEM_CTR cnt;
OS_ERR* p_err )
3. 任务队列简介
任务内嵌消息队列本质上就是一个消息队列,任务队列是分配于每一个任务的任务控制块结构体中的, 因此每一个任务都有独自的任务内嵌消息队列
注意:任务内嵌消息队列只能被该任务获取,但是可以由其他任务或者中断释放
4. 任务队列相关API函数介绍
注意:
- 发送任务消息队列API函数可以用于任务和中断服务函数中
- 接收任务消息队列API函数只能用在任务中
4.1 获取任务内嵌消息队列中的消息
void *OSTaskQPend( OS_TICK timeout,
OS_OPT opt,
OS_MSG_SIZE* p_msg_size,
CPU_TS* p_ts,
OS_ERR* p_err )
4.2 发送消息到任务内嵌消息队列
void OSTaskQPost( OS_TCB* p_tcb,
void* p_void,
OS_MSG_SIZE msg_size,
OS_OPT opt,
OS_ERR* p_err )
评论区