默认配置CFGITEM_IP_SOCKTCPRXLIMIT为8192的时候传送1.37K大小的文件都成功了,但是我设置为CFGITEM_IP_SOCKTCPRXLIMIT为8192*64时却无法接收64k的文件,请问这个怎么解决呢?还需要配置什么吗?
这里有几个疑问:配置CFGITEM_IP_SOCKTCPRXLIMIT应遵循什么原则吗?还有socket传送的时候PC端发送数据过大是不是不能用recvnc函数接收?因为他的返回值最大也就是2^32吧?
急求解答。万分感谢!
Andy Yin1:
参考如下关于如何修改buffer size的帖子:
http://e2e.ti.com/support/embedded/tirtos/f/355/p/203789/734062.aspx#734062
http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/178524.aspx?pi303753=2
liang he2:
回复 Andy Yin1:
我尝试增大的BUFFER size到1M:包括CFGITEM_IP_SOCKTCPRXLIMIT、TASK stack size、socket的recvBUF
结果仿真发送超过2K的数据还是出错:
00013.488 PBM_free: Invalid Packet00013.489 mmFree: Double FreeA0=0x0 A1=0x1A2=0x1 A3=0x90A4=0x80099340 A5=0x0A6=0x122 A7=0x856874A8=0x85686c A9=0x80093e90A10=0x80094070 A11=0xffffffffA12=0x0 A13=0x0A14=0x0 A15=0x0A16=0x0 A17=0x80000000A18=0x8005aca0 A19=0x0A20=0x84ec80 A21=0x0A22=0x2e A23=0x0A24=0x470 A25=0x23A26=0x6000 A27=0x3300A28=0x0 A29=0x200A30=0x0 A31=0x1B0=0x1 B1=0x1B2=0x0 B3=0x10ad0e80B4=0x0 B5=0x800994dcB6=0x36c0010 B7=0x25B8=0x856e78 B9=0x2c0a3f0B10=0x80087624 B11=0x8002de80B12=0x0 B13=0x0B14=0x8009a638 B15=0x8005af88B16=0x0 B17=0xc0000000B18=0x0 B19=0x1080e380B20=0x1 B21=0x80048900B22=0xf B23=0x0B24=0x0 B25=0x8e0000B26=0x0 B27=0x0B28=0x2c08100 B29=0xc0B30=0x1c4 B31=0x856870NTSR=0x1020fITSR=0x20fIRP=0x80007cd0SSR=0x0AMR=0x0RILC=0x0ILC=0x0Exception at 0x8002de88EFR=0x2 NRP=0x8002de88Internal exception: IERR=0x18Opcode exceptionResource conflict exceptionti.sysbios.family.c64p.Exception: line 248: E_exceptionMin: pc = 0x8002de88, sp = 0x8005af88.To see more exception detail, use ROV or set 'ti.sysbios.family.c64p.Exception.enablePrint = true;'xdc.runtime.Error.raise: terminating execution
我尝试在接收数据后中断进行内存查看发现接收pBuf根本就不够,使用的recv函数,pBuf是在监听任务里面定义的指针,因为折腾了一天忘记记录源程序了,现在又被我修改了,,,但是无论怎么更改还是只能接收1k多点的数据,否则就会报错。