我的系统如下:
stm32f107为服务器(下位机),pc为客户机(上位机),系统启动后,能够拼通且有回显给上位机,但是PC建立连接时,st mcu多发送了一次握手,建立连接本应为三次握手,结果mcu多发送了一次握手,跟踪程序发现在sys_mbox_new创建邮箱队列时不成功,不能获得释放的事件控制队列块,
OS_EVENT *OSQCreate (void **start, INT16U size)
{
-------------(初始化部分)
pevent = OSEventFreeList;
if (OSEventFreeList != (OS_EVENT *)0)
{
/* See if pool of free ECB pool was empty */ //(1)
OSEventFreeList = (OS_EVENT *)OSEventFreeList->OSEventPtr;
}
if (pevent != (OS_EVENT *)0)
{
------------(事件控制块处理部分) //(2)
}
return (pevent); //(3)
}
程序运行不进入(1)、(2)代码段,直接返回(3) pevent返回事件Null,导致 创建失败。 |