buf = Memory_alloc((IHeap_Handle)dataHeap, rbin*sizeof(float), CACHELINE, NULL);
这种Heap分配函数是不是只能在Emulator的环境下运行?不能在Simulator下仿真?
Ryan BL:
能编译过就都能用的吧。
Liu Chunjing:
回复 Ryan BL:
能编译通过,和是否能够运行起来不是一回事!!!
Shine:
回复 Liu Chunjing:
请问在simulator下运行出什么错?
Ryan BL:
回复 Liu Chunjing:
能编译过,证明这个接口在你的编译工程里面也是有的,你的代码检查申请到的内存是否是你的heap空间的地址,如果时,那就是能用的。
一般来说,提供给用户的接口,ti会在内部针对仿真和真实的环境做不同的适配,用户基本上时不需要关心的。需要做的就是,把仿真宏改成真实SOC的宏。
编译过了运行不起来肯定是你的编译有问题,运行起来来对不对才是你的最终目标吧!!!
Liu Chunjing:
回复 Shine:
在Device Cycle Approximate Simulator模式运行完这一段代码后出现以下错误: 代码:buf = Memory_alloc((IHeap_Handle)dataHeap, rbin*sizeof(float), CACHELINE, NULL); 错误: ti.sysbios.heaps.HeapMem: line 294 : out of memory : handle = 0xa03072a8, size = 24 xdc.runtime.Error.Raise : terminating execution
我测试了以下,即使我把rbin 设置为1,分配很小的一个空间,仍然出现以上错误:out of memory
Liu Chunjing:
回复 Liu Chunjing:
Device Cycle Approximate Simulator不支持 Memory_alloc()的仿真,我找了一个标准的例程SharedMem进行了测试,Functional Simulator没有问题,一旦修改为Device Cycle Approximate Simulator,出现同样的错误。具体原因我不太清楚。。。。