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

6678 DDR3

在6678中,运行多核程序时有时会报错,错误内容如下:

这是什么原因,内存空间不够么?

我在运行时修改了RTSC中的内存分配,将code和data都分配在DDR3上,这样也不可以?

那我应该怎么修改呢?

Wei:

这里报错的是heap,不是data和code。

你用malloc申请的内存段很大啊,或者可以考虑静态分配

wumengtiankuo zhou:

回复 Wei:

谢谢Wei Chen2。

你说的静态分配,是指不要使用malloc,用数组么?

那如果想用malloc,应该可以修改内存段的大小,类似于DM6467中修改tcf文件中的mem_ext数组,这种方法不行么?

Wei:

回复 wumengtiankuo zhou:

静态分配就是预先分配好内存给相应的变量。

使用malloc的时候注意在bios中设置heap的大小。

wumengtiankuo zhou:

回复 Wei:

我现在是对RTSC中的内存分配进行了修改,修改如下,我使用的是CCS 5.2.1:

那还需要修改什么么?

Wei:

回复 wumengtiankuo zhou:

你检查一下工程的bios配置文件吧,缺省的heap大小是4k byte。

wumengtiankuo zhou:

回复 Wei:

谢谢Wei!

在cfg文件中有代码如下:

var heapMemParams = new HeapMem.Params;

 heapMemParams.size = 0x8000;

var heap0 = HeapMem.create(heapMemParams);

Memory.defaultHeapInstance = heap0;

如果设置bios中的heap,此时会同时设置BIOS.heapSize和Memory.defaultHeapInstance,因此设置的BIOS.heapSize会被忽略。

此时应该如何修改呢??

删除上述代码,使用BIOS么?

Wei:

回复 wumengtiankuo zhou:

BIOS手册里面的描述是这样的

If you want to use a different heap manager for the system heap, you can specify the system heap in your 

configuration file and SYS/BIOS will not override the setting.

赞(0)
未经允许不得转载:TI中文支持网 » 6678 DDR3
分享到: 更多 (0)