我现在想将6678核0的处理数据可以被核1、核2访问到。目前的想法是在MSMC中定义一个变量开一块内存,将核0的处理数据赋值给MSMC中的变量,然后核1,核2区读取这个变量的值进行下一步操作。现在就是不知道怎么在MSMC中定义一个变量开一块内存,然后保持cache一致性的问题。
希望各位可以把这块的代码贴出来,谢谢大家帮忙。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我现在想将6678核0的处理数据可以被核1、核2访问到。目前的想法是在MSMC中定义一个变量开一块内存,将核0的处理数据赋值给MSMC中的变量,然后核1,核2区读取这个变量的值进行下一步操作。现在就是不知道怎么在MSMC中定义一个变量开一块内存,然后保持cache一致性的问题。
希望各位可以把这块的代码贴出来,谢谢大家帮忙。
多核编程参考user guide:http://www.ti.com/lit/an/sprab27b/sprab27b.pdf
建立一个ccs工程后;
定义一个全局变量如int array[128]; 利用progma DATA_SECTION(array, ".DDR")将其放到DDR;
cmd中配置DDR的地址范围;
配置DDR所在地址的memory 属性为cachable;
向array写数据,写完后调用csl cache函数刷cache;
其他的core读之前调用csl cache函数invalid cache,然后再读。
可以参考STK中的例程,其中有cmd、memory属性配置、cache操作。