新手入门
- 积分
- 17
- 金钱
- 17
- 注册时间
- 2017-8-9
- 在线时间
- 18 小时
|
err_t sys_mbox_new( sys_mbox_t *mbox,int size)
{
OS_ERR err;
CPU_CHAR *p_name = "TCP IP";
(*mbox)=mymalloc(SRAMEX,sizeof(TQ_DESCR)); //为消息邮箱申请内存
mymemset((*mbox),0,sizeof(TQ_DESCR)); //清除mbox的内存
if(*mbox)//内存分配成功
{
if(size>MAX_QUEUE_ENTRIES)size=MAX_QUEUE_ENTRIES; //消息队列最多容纳MAX_QUEUE_ENTRIES消息数目
OSQCreate((*mbox)->pQ,p_name,size,&err); //使用UCOS创建一个消息队列
LWIP_ASSERT("OSQCreate",(*mbox)->pQ!=NULL);
if((*mbox)->pQ!=NULL)
{
return ERR_OK; //返回ERR_OK,表示消息队列创建成功 ERR_OK=0
}
else
{
myfree(SRAMEX,(*mbox));
return ERR_MEM; //消息队列创建错误
}
}else return ERR_MEM; //消息队列创建错误
}
我把lwip的带操作系统移植到ucos iii上,修改arch文件中的邮箱创建代码如上,但是运行的时候一直打印出下面的错误,
Assertion "OSQCreate" failed at line 69 in E:\EleScaleProject\LWIP\arch\sys_arch.c
Assertion "failed to create tcpip_thread mbox" failed at line 463
但是我把OSQCreate((*mbox)->pQ,p_name,size,&err); 函数里面的err打印出来也是没有错误的,找了两天没找到问题在哪。。。。
|
|