TI工程师,您好:
因项目需要,在两个核中想运行同一个3D实例,比如说核0和核1都运行3D实例A,通过对3D模块的调试,始终只能在一个核中运行起来,另一个核则不能运行,在调试中分别做了以下调试:1、在初始化时我也尝试了把一些内存资源开在共享区域中,同时只在一个核中对3D进行初始化,这样,发现只有一个核3D能运行,3D中的一些特殊参数一但被改写后就不能再复位,比如说pingstop和pongstop(如果使用L2中的资源是可以复位的),另一个核的3D始终未起来。2、分别在两个核中对同一3D进行初始化操作,结果一个3D都没运行起来。对于以上问题,想请教一下,想两个核都运行同一个3D(两核同时使用时会做互斥),初始化配置时需要注意哪些问题?
Andy Yin1:
初始化只需要在一个core做即可,每个core在使用的时候需要确保EDMA等共享资源已经释放,即选确保之前提交的block处理完成后,才可提交下一个block,否则有可能导致资源配置覆盖使TCP工作异常。
wenzheng liu:
回复 Andy Yin1:
如果只需一个core做初始化,那初始化的资源需要放在共享中,这样才能确保另一核调用3D提交block时才能使用,但是有两个问题:一是3D中的一些参数一但被改写后就不能再复位,比如说pingstop和pongstop标志,当3D完成后会自动将其恢复成1,当使用共享内存时发现不能恢复(如果使用L2中的资源是可以复位的),这个如何解决? 另外还有一个问题:因两核使用同一个3D实例,DSP端的中断挂接需要修改吗?不同的核事件号是否需要不同的事件号呢?两个核的中断输出是否会混乱呢?
Andy Yin1:
回复 wenzheng liu:
什么是ping/pong stop?如果使用中段方式,中断事件可以广播到多个core。