在函数fun1中,data_type是局部变量,将&data_type作为消息指针,那在OSMboxPend里接受不到正确的消息内容。
void fun1()
{
char data_type;
data_type = 0x01;
OSMboxPost(Temp_Data_MBox, &data_type);
}
改为如下,加gDataType全局变量,&gDataType作为消息邮箱的消息指针,则在OSMboxPend里可以接收到正确的数据。
char gDataType = NULL;
void fun2()
{
char data_type;
data_type = 0x01;
gDataType = data_type;
OSMboxPost(Temp_Data_MBox, &gDataType);
}
综上所述,消息邮箱的消息指针指向的内存地址中的内容不能马上释放。