OpenEdv-开源电子网

标题: ucos II 下 407 作为TC同时作为tcp客户端和服务端 [打印本页]

作者: jihaolin    时间: 2016-7-25 19:58
标题: ucos II 下 407 作为TC同时作为tcp客户端和服务端
ucos II 下  407 单独作为tcp客户端或者服务端时都可以正常工作。如果同时作为tcp 客户端和服务端,作为服务端时总是报出Assertion "OSQCreate" failed at line 67 in ..\LWIP\arch\sys_arch.c。

作者: jihaolin    时间: 2016-7-25 19:58
已解决,是操作系统和协议栈的相关参数配置太小,
作者: zuozhongkai    时间: 2016-7-25 20:46
消息队列创建失败!硬件仿真看一下消息队列创建为什么失败了
作者: stayhungry    时间: 2016-7-28 16:26
楼主请问你改了哪些参数啊??我是报错这个,能够创建第一个信号量,创建第二个就不行了。
作者: jihaolin    时间: 2016-7-28 16:31
stayhungry 发表于 2016-7-28 16:26
楼主请问你改了哪些参数啊??我是报错这个,能够创建第一个信号量,创建第二个就不行了。

407 同时作为TCP 客户端和服务端时不能正常工作。单独可以正常工作。
同时作为客户端和服务端时,初始化全部成功,说明进程已经建立。但是当用网络调试助手连接TCP 服务器(407)时,串口打印出来的数据Assertion "OSQCreate" failed at line 67 in ..\LWIP\arch\sys_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 ..\LWIP\lwip-1.4.1\src\api\netbuf.c
Assertion "bad pbuf type" failed at line 571 in ..\LWIP\lwip-1.4.1\src\core\pbuf.c
由此想到了可能是操作系统的配置文件,或者是lwip 的相关配置文件有的参数配置过小。
#define PBUF_POOL_SIZE          25                //PBUF_POOL_SIZE:pbuf内存池个数
#define MEMP_NUM_PBUF           25                 //MEMP_NUM_PBUF:memp结构的pbuf数量,如果应用从ROM或者静态存储区发送大量数据时,这个值应该设置大一点
更改这连个参数,这三个可以终于可以同时工作了。
调试过程
作者: stayhungry    时间: 2016-7-28 16:42
感谢楼主,问题解决。我是改了os_cfg.h里面的最大事件数就行了




欢迎光临 OpenEdv-开源电子网 (http://47.111.11.73/) Powered by Discuz! X3.4