各位专家好!
在CCS5.3下,使用6670EVM测试Tcp3d模块,通过file函数读取PC上的测试数据,遇到heap资源耗尽,请教各位专家,应如何解决。
现象如下:
1 开始时:Heap空闲大小为0x1fff060;
2 经过fopen:Heap空闲大小降为0x83efc0;
3 再经过fscanf:heap空闲大小降为0;
4 后来经过sprintf时:heap空闲大小直接变红了,没有数值;
附件有相关截图!
Andy Yin1:
文件读写不会消耗heap,数据能读进来么,程序能继续往下执行么。
Rambo:
回复 Andy Yin1:
数据可以读出来,程序也可以继续往下执行,但只能按F6单步执行,如果按F8,会弹出如下信息:
[C66xx_0] ti.sysbios.knl.Task: line 360: E_stackOverflow: Task 0x863ea8 stack overflow.xdc.runtime.Error.raise: terminating execution
我通过ROV没有找到 0x863ea8 的任务,但有2个任务的stack是放到HeapMap范围的,可能因为这个原因才弹出的stack overflow错误,我调整一下任务的stack位置再试一试吧。
Rambo:
回复 Rambo:
已经解决了task stack over flow的问题,但还是不太明白以下几点,希望能够得到指导:
1 为何file操作时为何会大量消耗heapMem?
2 调用file相关操作,需要注意什么吗?
有相关的资料吗,如果有,麻烦上传一下,谢谢!
hang fu:
回复 Rambo:
你好Rambo,我用的是C6657,在跑程序时也遇到了跟你一样的问题,
[C66xx_0] ti.sysbios.knl.Task: line 360: E_stackOverflow: Task 0x863ea8 stack overflow.xdc.runtime.Error.raise: terminating execution。
请问你是如何解决这个问题的,谢谢