TIwilliam hill官网
直播中

高文军

7年用户 184经验值
私信 关注

请问c6678使用gateMP如何进行多核共享保护?

本帖最后由 一只耳朵怪 于 2018-6-19 10:51 编辑

大家好,
      最近研究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如果实现多核保护比较标准的解决方案是什么?
    谢谢!

回帖(4)

王英

2018-6-19 04:14:48
6678的多核保护你可以考虑用硬件的Semaphore来解决,这应该是最快捷的方法。
举报

高文军

2018-6-19 04:27:38
引用: hdfsf 发表于 2018-6-19 04:14
6678的多核保护你可以考虑用硬件的Semaphore来解决,这应该是最快捷的方法。

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

杨娟

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

hardware semaphore example:http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/4899.aspx
CPINTC可以在代码中调用CSL函数进行配置。
                                                                          

举报

高文军

2018-6-19 04:50:03
引用: zbb9612 发表于 2018-6-19 04:38
hardware semaphore example:http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/4899.aspx
CPINTC可以在代码中调用CSL函数进行配置。
                                                                          

好的,谢谢!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分