我使用的开发环境是 windows7 64bit 系统, CCS5.3+sys/bios。我要自己新建一个工程,在RTSC下面做了如下的选择:
DSPLIB C66X 3.1.00
IPC 1.24.0.04
MCSDK 2.1.2.6
MCSDK PDK TMS320C6678
NDK 2.23.0.00
NDK Network Support Package
SYS/BIOS 6.34.2.18
XDAIS 7.21.1.07
我的代码在附件中,可以直接运行:
能够正常编译并运行,但是,在运行到rc = NC_NetStart( hcfg, NetworkOpen, NetworkClose, NetworkIPAddr );的时候,出现堆栈溢出错误,错误如下:
[C66xx_0] enter main()
ti.sysbios.knl.Task: line 355: E_stackOverflow: Task 0x803010a8 stack overflow.
xdc.runtime.Error.raise: terminating execution
enter main()
ti.sysbios.knl.Task: line 355: E_stackOverflow: Task 0x803010a8 stack overflow.
xdc.runtime.Error.raise: terminating execution
我确定我的堆栈分配是足够的,我也用tool查看了的。现在请工程师帮忙指导哈,谢谢。
请工程师运行我的工程,并且帮我指正错误,谢谢。
Andy Yin1:
你可以看看堆栈的栈顶,以及通过CCS中的ROV工具也可查看堆栈的使用量。
如果把堆栈放到SL2及LL2是否有问题?
WU LANBIN:
回复 Andy Yin1:
工程师,你好。你跑了我的程序。是否觉得我把堆栈放到了DDR3里面,哪么,我应该在哪里设置堆栈呢?怎么把堆栈放到L2呢,你可否跑跑我的工程。看看问题在哪里。谢谢。
WU LANBIN:
回复 Andy Yin1:
我用过ROV工具看了。堆栈确实没有使用完。谢谢。