gpt4 book ai didi

c - 非嵌入式系统的 RTOS 邮箱示例

转载 作者:行者123 更新时间:2023-11-30 19:42:52 24 4
gpt4 key购买 nike

我想用 VS2013 在 Windows 8 中编写一个简单的 C 控制台应用程序。

对于线程间通信,我必须使用这样的邮箱实现:

#include <stdio.h> 
#include <Rtk32.h>

RTKMailbox Box;

void RTKAPI TaskA(void * P)
{
int i;

printf("Task A: waiting at mailbox\n");
RTKGet(Box, &i);
printf("Task A: have received number %i\n", i);
}

void main(void)
{
int i;

printf("\n");
RTKernelInit(3);
Box = RTKCreateMailbox(sizeof(int), 1, "Test Box");
printf("Main : creating task A\n");
RTKCreateThread(TaskA, 4, 0, 0, NULL, "Task A");
printf("Main : please enter a number: ");
fflush(stdin);
scanf("%i", &i);
RTKPut(Box, &i);
printf("Main : done.\n");
}

Mailbox

是否有用于非嵌入式系统的库或者什么是最好的方法。

最佳答案

我不确定一个库,但我制作了一个基于 Windows 的多线程文件复制控制台示例程序,其中一个线程读取,另一个线程写入,使用互斥体和信号量之上的 fifo 链表消息传递系统。消息传递函数是 GetNode() 和 PutNode(),并与列表节点一起使用。可以添加另一层函数来使用 ReceiveMessage() 和 SendMessage() 实现类似邮箱的复制接口(interface)。链表可以用循环数组代替,但链表允许可变数量的消息。我已经为多线程嵌入式系统和旧的多线程小型计算机内核使用了类似的链接列表消息传递接口(interface)。 mtcopy.zip

关于c - 非嵌入式系统的 RTOS 邮箱示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30399172/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com