TI中文支持网
TI专业的中文技术问题搜集分享网站

关于Memory_alloc()函数的问题。。。

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,出现同样的错误。具体原因我不太清楚。。。。

赞(0)
未经允许不得转载:TI中文支持网 » 关于Memory_alloc()函数的问题。。。
分享到: 更多 (0)