嵌入式学习小组
直播中

倪驰銮

7年用户 204经验值
私信 关注

ucos II下407作为服务端时总是报出以下情况是怎么回事?

ucos II 下  407 单独作为tcp客户端或者服务端时都可以正常工作。如果同时作为tcp 客户端和服务端,作为服务端时总是报出Assertion "OSQCreate" failed at line 67 in ..LWIParchsys_arch.c。

回帖(5)

赵文娜

2019-10-24 08:30:37
已解决,是操作系统和协议栈的相关参数配置太小,
举报

郭雨桐

2019-10-24 08:44:08
消息队列创建失败!硬件仿真看一下消息队列创建为什么失败了
举报

孙原元

2019-10-24 08:51:15
楼主请问你改了哪些参数啊??我是报错这个,能够创建第一个信号量,创建第二个就不行了。
举报

冯超

2019-10-24 09:00:50
407 同时作为TCP 客户端和服务端时不能正常工作。单独可以正常工作。
同时作为客户端和服务端时,初始化全部成功,说明进程已经建立。但是当用网络调试助手连接TCP 服务器(407)时,串口打印出来的数据Assertion "OSQCreate" failed at line 67 in ..LWIParchsys_arch.c,说明有个邮箱没有建立成功。后来就想是不是因为堆栈太大,空间不足,所以就相反设法减小任务堆栈大小,结果该的之后,引起HDCP失败。
726
昨天出现的问题,有可能是因为sys_arch.h里面最大消息邮箱的数量设置小了,所以导致创建消息邮箱失败。
也有可能是os_cfg.h 最大事件数设置小了
在昨天的基础上实验了 tcp 客户端和服务器端,把udp去掉,结果可以正常工作。
在更改相关配置之后,
把3个功能全部加上,tcp客户端和服务端可以正常工作,结果UDP出现问题,结果提示
Assertion "netbuf_alloc: invalid buf" failed at line 109 in ..LWIPlwip-1.4.1srcapinetbuf.c
Assertion "bad pbuf type" failed at line 571 in ..LWIPlwip-1.4.1srccorepbuf.c
由此想到了可能是操作系统的配置文件,或者是lwip 的相关配置文件有的参数配置过小。
#define PBUF_POOL_SIZE          25                //PBUF_POOL_SIZE:pbuf内存池个数
#define MEMP_NUM_PBUF           25                 //MEMP_NUM_PBUF:memp结构的pbuf数量,如果应用从ROM或者静态存储区发送大量数据时,这个值应该设置大一点
更改这连个参数,这三个可以终于可以同时工作了。
调试过程
举报

更多回帖

发帖
×
20
完善资料,
赚取积分