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

c6678使用gateMP进行多核共享保护的问题

大家好,

      最近研究6678,需要多核对相同地址的数据进行操作,因此需要增加保护,让同一时间只有一个核可以访问。

      从IPC的文档中发现GateMP可以实现,但是目前我在使用时遇到了一些问题,想请各位帮助一下。

      目前我使用的开发环境是CCS5.1,采用TI的EVM6678L开发板。

      具体要实现的内容如下:

      每个核均运行相同的代码:

     {

         gateHandle = GateMP_getDefaultRemote();

        /* Enter the gate */
        key = GateMP_enter(gateHandle);

         // TODO something

        /* Leave the gate */
        GateMP_leave(gateHandle, key);

     }

      在调用GateMP中函数 GateMP_getDefaultRemote()来获取一个GateMP_Handle时,返回值总是NULL,(编译正常)运行时报错如下:

[C66xx_0] ti.sdo.ipc.GateMP: line 208: assertion failure: A_nullArgument: Required argument is null
[C66xx_0] xdc.runtime.Error.raise: terminating execution

    请问各位这个问题怎么解决?

    另外我查了很多发现6678中似乎很少用到GateMP,而是davinci中用的较多,不知道6678如果实现多核保护比较标准的解决方案是什么?

    谢谢!

Richard Wu:

回复 Allen35065:

Allen Yin你好,请问是否相关的有硬件信号量例程可以参考?另外想请问一下为什么TI的开发板不支持cpIntc?我在cfg配置时,使用了Target Specific Suppotr中C66的CpIntc,但是有error说CpIntc unsupportted on Device。

Andy Yin1:

回复 Richard Wu:

hardware semaphore example:http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/4899.aspx

CPINTC可以在代码中调用CSL函数进行配置。

Richard Wu:

回复 Andy Yin1:

好的,谢谢!

赞(0)
未经允许不得转载:TI中文支持网 » c6678使用gateMP进行多核共享保护的问题
分享到: 更多 (0)