首页 > davinci(TI DSP) > DM642的NDK SBNew: Buffer OOM错误问题解决

DM642的NDK SBNew: Buffer OOM错误问题解决

2009年9月29日

DM642上使用异常现象,建立一个TCP监听端口,当向这个tcp端口连接时失败,DM642程序在CCS上提示的打印信息:
00008.106 SBNew: Buffer OOM
00008.681 SBNew: Buffer OOM
00009.298 SBNew: Buffer OOM

整个工程原先是可用,最近不知做什么修改才出现了这个问题,怀疑是NDK相关的库被修改了,查了一遍,无果。

还是得从打印信息出发,经查证,SBNew是一个内存分配函数,在stack.lib的sb.c文件里实现,SBNew: Buffer OOM就意味着内存分配不成功。

依据网络堆栈的思路调整了堆栈大小,最终把问题确定下来了,原来我们使用的socket buffer被修改得太大了,之前调试把buffer改成 0x100000,改回8704就ok了!

// Change our socket buffer size to 8704 bytes
rc =8704;//8760;// 0x100000;//
CfgAddEntry( hCfg, CFGTAG_IP, CFGITEM_IP_SOCKBUFMAX, CFG_ADDMODE_UNIQUE, sizeof(uint), (UINT8 *)&rc, 0 );

TI提供的DM642 NDK存在不少问题,使用时要十分小心!

davinci(TI DSP) , ,

本文的评论功能被关闭了.