使用uc/os中遇到的一个有关OSMboxPend()的一个问题

来源:互联网 发布:闪电地震流数据 编辑:程序博客网 时间:2024/05/21 05:19

在OSMboxPend()使用时,一般是与OSMboxPost()成对使用,但如果刚刚读取完OSMboxPend()时,进入一个循环读取返回值时,这时如果收到OSMboxPend()的话,会怎么样呢?程序如下所示:

while(1)

{

msg = OSMboxPend(msg_box,0,&err);

while(*msg != Num_Count)

{

Num_Count++;

OSTimeDlyHMSM(0, 0, 1, 0); 

}

}

若在while(*msg != Num_Count)中,程序其他地方执行了一个OSMboxPost(msg_box,Num_Count+10)的时候,while(*msg != Num_Count)中的*msg已经被改变了,程序验证随后附上;


0 0
原创粉丝点击