这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 求助:新人初涉嵌入式开发,请教个基础问题,有空的前辈愿意的话帮忙解决下

共1条 1/1 1 跳转至

求助:新人初涉嵌入式开发,请教个基础问题,有空的前辈愿意的话帮忙解决下

菜鸟
2006-12-22 02:14:33     打赏

如题

要求:建立两个任务taskId1和taskId2,taskId1发送一个字符给taskId2,taskId2接收这个字符并且把该字符写入一个文件,然后发确认信息给taskId1,taskId1接到确认信息后,读上面那个文件,并打印到显示器,然后继续发一个字符给taskId2,这个循环持续不断
环境:Vxworks,Tornado2.2
程序
#include "VxWorks.h"
#include "taskLib.h"
#include "msgQLib.h"
#include "stdio.h"
#include "selectLib.h"
#include "sysLib.h"
#include "ioLib.h"
#include "stdlib.h"
#include "string.h"

char MSG;

void TASK1(void);
void TASK2(void);

int FD;
int taskId1,taskId2;

MSG_Q_ID msgQId1,msgQId2;

char buffer1[50],buffer2[50],buffer3[50];


STATUS progStart (void)
{
taskId1 = taskSpawn("task1",120,0,10240,(FUNCPTR)TASK1,0,0,0,0,0,0,0,0,0,0);
taskId2 = taskSpawn("task2",110,0,10240,(FUNCPTR)TASK2,0,0,0,0,0,0,0,0,0,0);
msgQId1 = msgQCreate(20,50,MSG_Q_FIFO);
msgQId2 = msgQCreate(20,50,MSG_Q_FIFO);
FD = creat("FILE1",O_RDWR);
return (OK);
}

void TASK1(void)
{
printf("Please input a character:");
scanf("%c",&MSG);
msgQSend(msgQId1,&MSG,sizeof(MSG),WAIT_FOREVER,MSG_PRI_NORMAL);
taskResume(taskId2);
taskSuspend(taskId1);
if(msgQReceive(msgQId2,buffer2,50,WAIT_FOREVER)=='o')
{
read(FD,buffer3,1);
printf("%s",buffer3);

}
taskRestart(taskId1);
}

void TASK2(void)
{
if(msgQReceive(msgQId1,buffer1,50,WAIT_FOREVER)!=ERROR);
{
char MSG1='o';
write(FD,buffer1,1);
printf("The char received is: %s",buffer1);
msgQSend(msgQId2,&MSG1,sizeof(MSG1),50,MSG_PRI_NORMAL);
taskResume(taskId1);
taskSuspend(taskId2);
}
taskRestart(taskId2);
}

void progStop (void)
{
taskDelete (taskId1);
taskDelete (taskId2);
msgQDelete(msgQId1);
msgQDelete(msgQId2);
printf ("BYE!
");
}

新人初学嵌入式,就遇到 voip的项目,请各位达人多指教了,谢谢,另外请推荐些嵌入式概念方面的电子书或书籍

[em06]



关键词: 求助     新人     初涉     嵌入式     开发     请教     基础     问题         

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]