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

6678 IPC多核在DDR3上触发8核问题解决方案

HI,

原先在调试SYSBIOS IPC多核触发中,需要将codemem和datamem放置在DDR做共享,MSMC只有4M太小,无法放下所有文件,所以移植

到DDR3上,刚开始一直无法成功,在e2e和多方高手的帮助下,终于成功了。也在此分享下自己的经验。希望对大家有用。

 

1.直接修改CCS下的platform,起码CCS下的platform是标准的,这样不会有错误。

   修改位置,在platform里面添加DDR3部分,然后将codemem和datamem存放位置写在DDR3上,

2.修改工程文件下的cfg文件,直接添加如下配置:

 

Program.sectMap[".text"] = new Program.SectionSpec();

//Program.sectMap[".text"] = "MSMCSRAM";

Program.sectMap[".text"] = "DDR3";

 

Program.sectMap[".ti.decompress"] = new Program.SectionSpec();

//Program.sectMap[".ti.decompress"] = "MSMCSRAM";

Program.sectMap[".ti.decompress"] = "DDR3";

 

Program.sectMap[".bss"] = new Program.SectionSpec();

Program.sectMap[".bss"] = "L2SRAM";

 

Program.sectMap[".neardata"] = new Program.SectionSpec();

Program.sectMap[".neardata"] = "L2SRAM";

 

Program.sectMap[".rodata"] = new Program.SectionSpec();

Program.sectMap[".rodata"] = "L2SRAM";

 

Program.sectMap[".cinit"] = new Program.SectionSpec();

//Program.sectMap[".cinit"] = "MSMCSRAM";

Program.sectMap[".cinit"] = "DDR3";

 

Program.sectMap[".pinit"] = new Program.SectionSpec();

//Program.sectMap[".pinit"] = "MSMCSRAM";

Program.sectMap[".pinit"] = "DDR3";

 

Program.sectMap[".init_array"] = new Program.SectionSpec();

//Program.sectMap[".init_array"] = "MSMCSRAM";

Program.sectMap[".init_array"] = "DDR3";

 

Program.sectMap[".const"] = new Program.SectionSpec();

//Program.sectMap[".const"] = "MSMCSRAM";

Program.sectMap[".const"] = "DDR3";

 

Program.sectMap[".data"] = new Program.SectionSpec();

Program.sectMap[".data"] = "L2SRAM";

 

Program.sectMap[".fardata"] = new Program.SectionSpec();

Program.sectMap[".fardata"] = "L2SRAM";

 

Program.sectMap[".switch"] = new Program.SectionSpec();

//Program.sectMap[".switch"] = "MSMCSRAM";

Program.sectMap[".switch"] = "DDR3";

Program.sectMap[".sysmem"] = new Program.SectionSpec();

//Program.sectMap[".sysmem"] = "MSMCSRAM";

Program.sectMap[".sysmem"] = "DDR3";

 

Program.sectMap[".far"] = new Program.SectionSpec();

Program.sectMap[".far"] = "L2SRAM";

 

Program.sectMap[".args"] = new Program.SectionSpec();

//Program.sectMap[".args"] = "MSMCSRAM";

Program.sectMap[".args"] = "DDR3";

 

Program.sectMap[".cio"] = new Program.SectionSpec();

Program.sectMap[".cio"] = "L2SRAM";

 

Program.sectMap[".ti.handler_table"] = new Program.SectionSpec();

//Program.sectMap[".ti.handler_table"] = "MSMCSRAM";

Program.sectMap[".ti.handler_table"] = "DDR3";

 

Program.sectMap[".vecs"] = new Program.SectionSpec();

//Program.sectMap[".vecs"] = "MSMCSRAM";

Program.sectMap[".vecs"] = "DDR3";

 

Program.sectMap[".xdc.meta"] = new Program.SectionSpec();

//Program.sectMap[".xdc.meta"] = "MSMCSRAM";

Program.sectMap[".xdc.meta"] = "DDR3";

注释掉的是放置于MSMC上的。

修改结束,这样就可以在原先IPC在DDR3下做触发。起码DDR3的空间大,以后添加功能都方便

——————————————————-

不过在IPC触发成功后,本人在移植QMSS八核,将demo代码的core0和core1之间的QMSS移植为八核QMSS还存在一些问题,

八核一直无法跑起来,https://www.deyisupport.com/question_answer/f/53/t/7506.aspx

这个是问题链接,如果有哪位高手对QMSS熟的话,能帮我看下这个问题所在,万分感谢

谢谢

Andy Yin1:

您好,

感谢分享!QMSS需要先了解一下其通信的流程。

Richard Wu:

您好,

我最近也遇到了这个问题,想请问一下。

您说的“直接修改CCS下的platform”具体是在哪里?工程文件还是ccs的安装文件呢?

谢谢!

user2000895:

多谢分享了啊

Ping Li3:

回复 Richard Wu:

在菜单tools下的RTSC下面

chen xie:

回复 Andy Yin1:

能麻烦问问您负责BCP方面的同事咨询一下如下两个问题么,谢谢您!

http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/45206.aspx

http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/45234.aspx

 

谢谢您!

Richard Wu:

回复 Ping Li3:

十分感谢!

stern:

我也是这样修改的,结果出错了,请问能发一个平台的文件吗?

赞(0)
未经允许不得转载:TI中文支持网 » 6678 IPC多核在DDR3上触发8核问题解决方案
分享到: 更多 (0)