使用vxWorks实现多任务之间的通信

作者:佚名 上传时间:2023-03-25 运行软件:VxWorks 6.9 软件版本:vxWorks 6.9 版权申诉

本示例展示了如何在vxWorks操作系统中实现多任务之间的通信,通过消息队列来传递数据。 通过创建几个任务,将数据放入和取出消息队列中,实现了多任务之间的通信。实现方式比较简单,是通过任务间消息队列的方式来进行数据交换。

#include "vxWorks.h"
#include "taskLib.h"
#include "msgQLib.h"

#define MSG_Q_MAX_MSGS 10
#define MSG_Q_MAX_MSG_LENGTH 32

MSG_Q_ID msgQId;

void ProducerTask(void)
{
    while(1)
    {
        char *msg = "producer message";
        int msgLength = strlen(msg) + 1;
        msgQSend(msgQId,msg,msgLength,WAIT_FOREVER,MSG_PRI_NORMAL);
        taskDelay(100); //延迟100个系统时钟滴答
    }
}

void ConsumerTask(void)
{
    while(1)
    {
        char msg[MSG_Q_MAX_MSG_LENGTH];
        memset(msg,0,MSG_Q_MAX_MSG_LENGTH);
        int msgLength = msgQReceive(msgQId,msg,MSG_Q_MAX_MSG_LENGTH,WAIT_FOREVER);
        printf("Receive Message:%s\n",msg);
    }
}

void MultipleTaskCommDemo(void)
{
    msgQId = msgQCreate(MSG_Q_MAX_MSGS,MSG_Q_MAX_MSG_LENGTH,MSG_Q_FIFO);
    taskSpawn("ProducerTask",200,0x100,10000,(FUNCPTR)ProducerTask,0,0,0,0,0,0,0,0,0,0);
    taskSpawn("ConsumerTask",200,0x100,10000,(FUNCPTR)ConsumerTask,0,0,0,0,0,0,0,0,0,0);
}

void test(void)
{
    MultipleTaskCommDemo();
}

免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com

用户评论
相关推荐
使用vxWorks实现多任务之间通信
本示例展示了如何在vxWorks操作系统中实现多任务之间的通信,通过消息队列来传递数据。通过创建几个任务,将数据放入和取出消息队列中,实现了多任务之间的通信。实现方式比较简单,是通过任务间消息队列的
vxWorks 6.9
VxWorks 6.9
2023-03-25 10:43
VxWorks多任务通信
VxWorks多任务间的通信
PDF
0B
2019-09-24 21:08
vxworks多任务程序实现
vxworks任务调度程序开发,论文相关,有兴趣可参看
CAJ
0B
2019-05-02 12:05
基于VxWorks多任务通信模型设计
提出了一种基于VxWorks实时操作系统的多任务间通信模型.模型以UDP传输和虚拟设备绑定的概念为基础,克服了传统通信机制的缺点,满足了嵌入式操作系统对实时性和系统资源的要求.对模型的原理、可行性和优
pdf
287.69 KB
2022-08-14 14:58
vxworks实验多任务
vxworks实验,时间测量。有实例代码。vxworks实验,时间测量。有实例代码。
PDF
0B
2019-01-15 05:34
vxworks实时多任务
vxworks实时多任务的机制以及函数汇总
HTM
0B
2018-12-09 11:47
使用SendMessage实现进程之间通信
使用SendMessage实现进程之间的通信使用SendMessage实现进程之间的通信使用SendMessage实现进程之间的通信使用SendMessage实现进程之间的通信
zip
0B
2019-05-22 18:35
VxWorks编写多任务程序实现不同任务间通信
在VxWorks中,使用任务间消息传递的方法实现不同任务间的通信是十分常见的。本示例介绍如何使用msgQSend函数和msgQReceive函数来实现多任务间的通信,并附有示例代码。/* * 该程
VxWorks 6.9
Wind River公司
2023-03-22 21:31
VxWorks中如何实现多任务通信与同步
在VxWorks操作系统中,任务之间的通信与同步对于实现复杂的系统非常关键。本文将详细介绍VxWorks中实现多任务间通信与同步的方法。/* 创建信号量 */SEM_ID sem = semBCr
VxWorks 6.9
Wind River Systems
2023-04-25 05:07
使用MQTT实现前端与软件之间通信
MQTT(Message Queuing Telemetry Transport)是一种轻量级的、开放的、支持可靠性消息传输的物联网通信协议。它通过发布/订阅模式实现了前端与软件之间的实时通信。在这个
zip
849.37KB
2023-08-24 06:58