新手入门
- 积分
- 18
- 金钱
- 18
- 注册时间
- 2019-11-19
- 在线时间
- 4 小时
|
5金钱
TA3、TA4、TA5使用相同的任务代码(Taskq2函数)。怎么实现这个指针的调用
//任务函数声明
static void TA3 ( void * p_arg );
static void TA4 ( void * p_arg );
static void TA5 ( void * p_arg );
//任务函数
static void TA3 ( void *p_arg)
{
OS_ERR err;
OS_MSG_SIZE msg_size;
CPU_SR_ALLOC(); //使用到临界段(在关/开中断时)时必需该宏,该宏声明和
//定义一个局部变量,用于保存关中断前的 CPU 状态寄存器
// SR(临界段关中断只需保存SR),开中断时将该值还原。
char * pMsg;
(void)p_arg;
while (DEF_TRUE) { //任务体
//请求消息队列 queue 的消息
pMsg = OSQPend ((OS_Q *)&queue2, //消息变量指针
(OS_TICK )0, //等待时长为无限
(OS_OPT )OS_OPT_PEND_BLOCKING, //如果没有获取到信号量就等待
(OS_MSG_SIZE *)&msg_size, //获取消息的字节大小
(CPU_TS *)0, //获取任务发送时的时间戳
(OS_ERR *)&err); //返回错误
if ( err == OS_ERR_NONE ) //如果接收成功
{
OS_CRITICAL_ENTER(); //进入临界段
printf ( "\r\n接收消息的长度:%d字节,内容:%s\r\n", msg_size, pMsg );
OS_CRITICAL_EXIT();
}
}
}
static void TA4 ( void *p_arg)
{与上面一样}
static void TA5 ( void *p_arg)
{与上面一样}
|
|