C6678多核程序运行问题

C6678多核程序运行问题

此问题已被解答
All Replies
  • 秀才2分

    C语言编写的多核运行程序,核间通信用的是全局变量的方式;现在有时候会遇到这种问题,在修改程序的过程中,在程序的公共区域或者单个核的switch case语句中添加一句while的判定死循环。再用ccs进行硬件仿真,就会出现程序跑不通的情况,单步调试发现有几个核不进入自己的case语句运行,也会出现全局变量核间通信失败的情况。cmd中的.switch放置在LL2中,全局变量放置在DDR3中,希望知道的大佬帮助回答一下,谢谢了。

  • 探花13655分

    全局变量放在DDR中,做了CACHE一致性维护吗?

    上述内容如果回答了您的问题,请点击标签栏“是”按钮。您的轻轻一点,会帮助我们更好的管理论坛内容,谢谢!

  • 秀才2分

    谢谢您的回答,确实没有做一致性维护,能问一下怎么做吗?cache flush,cache invalid怎么使用呀。另外是不是做了一致性维护就可以把全局变量放在共享内存区了?我的程序中之前也有while的判定死循环,是放置在控制核中的,运行就没有问题,但是多在一个,就会出现这种问题。

  • 探花13655分

    对的,做了CACHE一致性维护就可以把全局变量放在DDR或者共享内存中了。

    具体您可以参考下PDK中的CACHE CSL库的函数说明

    上述内容如果回答了您的问题,请点击标签栏“是”按钮。您的轻轻一点,会帮助我们更好的管理论坛内容,谢谢!

  • 秀才2分

    好的,谢谢,我试试