关于ucos邮箱使用出错问题
void Task1(void *pdata){
pdata = pdata;
int i=0;
OS_EVENT *Mbox;
GUI_SetColor(GUI_RED);//ÉèÖÃ×ÖÌåÑÕÉ«
GUI_SetFont(&GUI_FontComic24B_ASCII);
Mbox=OSMboxCreate((void *)0);
for (;;)
{
GUI_DispDecAt(i,60,110,3);
//OSTaskSuspend(OS_PRIO_SELF); //
OSTimeDly(400);
i++;
OSMboxPost(Mbox,(void *)&i);
}
}
void Task2(void *pdata)
{
pdata = pdata;
OS_EVENT *Mbox;
INT8U err;
INT8U m;
for (;;)
{
UTX_PROC("0xaa");
m=*(INT8U *)OSMboxPend(Mbox,0,&err);
UCA1TXBUF=m;
OSTimeDly(400);
}
}
以上是用msp430f5438移植的ucos工程中的2个任务,在使用邮箱时程序不断重启,有以下几个问题:
1,邮箱定义指针OS_EVENT *Mbox;这句,为什么每个任务里都要,少一个都编译不过,在程序最前面定义了也是一样,任务里定义一个都不能少;
2,m=*(INT8U *)OSMboxPend(Mbox,0,&err);这句屏蔽后程序不重启,串口发送任务正常(除m值)
程序不断重启是为何?邮箱应怎样正确使用?
附上工程 OS_EVENT *Mbox 必须是全局变量! i55x 发表于 2013-2-13 14:35 static/image/common/back.gif
OS_EVENT *Mbox 必须是全局变量!
在最前面定义全局变量他就报任务中的mbox未定义… cafppla1 发表于 2013-2-13 14:55 static/image/common/back.gif
在最前面定义全局变量他就报任务中的mbox未定义…
不可能,肯定其他地方出错了。
页:
[1]