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

C6455的DDR2在SYSBIOS使用

最近在移植代码,将C6455的代码转化成多线程的,目前代码都放在L2段,尝试将TASK,MBX放在DDR2中,都是会导致程序跑飞?

手册中有Program.sectMap[".foo"]="IRAM"的例子,可是我在JAVAscrip中设置了,还是会跑飞,

DDR2在进入BIOS前初始化的,先初始化,再动态创建TASK

Nancy Wang:

在JAVAscrip中设置?有没有在.cfg文件中配置。

user5317112:

回复 Nancy Wang:

就是CFG文件中加入Program.sectMap[".foo"]="IRAM";
在platfrom中设置好了,DDR2地址空间
在CFG中创建了一个heapmem

user5317112:

回复 Nancy Wang:

创建的heapmem句柄为Heapmem0
Mailbox_Params mboxParams;

Mailbox_Params_init(&mboxParams);
mboxParams.heap=Heapmem0;
mbox = Mailbox_create(8,2,&mboxParams,&eb);

user5317112:

回复 Nancy Wang:

你好,能推荐一个SYSBIOS的教材吗?之前我用过CCS3.3的DSPBIOS,当时是用的28335,也是无法在外扩的SDRAM上创建TASK,但是MBX是运行成功过的,现在用6455,在测试MBX时就会跑飞

Nancy Wang:

回复 user5317112:

Program.sectMap[".foo"]="IRAM"这个要按照实际需求修改,希望将哪些段放到DDR2上,你有做修改吗?
这个示范链接也看一下。
rtsc.eclipse.org/…/Demo_of_Customizing_Memory_Sections

user5317112:

回复 Nancy Wang:

Program.sectMap[".foo"]="DDR2"这个修改过了,实例链接中的platform也修改过,编译没有问题

user5317112:

回复 Nancy Wang:

我感觉是把MBX设置到外部memory这一过程出的问题

user5317112:

回复 Nancy Wang:

map文件中包含DDR2的地址空间

Nancy Wang:

回复 user5317112:

sys/bios user guide:
www.ti.com/…/spruex3u.pdf
加大堆栈看看。
用ROV分析一下程序运行情况。
processors.wiki.ti.com/…/Runtime_Object_View_(ROV)

user5317112:

回复 Nancy Wang:

我在函数中bootloader.asm中设置函数段为.boot;

在CFG中设置Program.sectMap[".boot"]=new program.section;

Program.sectMap[".boot"]="BOOT";

BOOT也是platform中的memory

这样可以工作,我想问如果我设置一个函数的段为“.taskdata”,把“.taskdata”放到DDR2中,TASK3调用相关函数,TASK3空间中需要函数的空间吗?

如果TASK2,TASK3都调用这个功能函数,TASK2和TASK3的空间都是L2,是不是说不会调用DDR2中的函数,只是将函数复制到TASK2和TASK3空间中运行。

赞(0)
未经允许不得转载:TI中文支持网 » C6455的DDR2在SYSBIOS使用
分享到: 更多 (0)