一直想把6670的 SL2 用起来,没有看过例程的话,感觉没有头绪,希望能给一个使用了SL2的例程链接,以便参考!
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.
一直想把6670的 SL2 用起来,没有看过例程的话,感觉没有头绪,希望能给一个使用了SL2的例程链接,以便参考!
我想在SL2定义一个变量,然后每个核都能改变这个变量的值,但是这个好像涉及到cache一致性问题,当我在核0改变了变量的值后,其它的核并没有改变。希望能有类似的工程链接,里面涉及到cache一致性的配置,有类似的参考的话,慢慢就会配置的。
可以每个核上变量定义到同一个物理内存位置,达到类似全局的效果,如下:
(1)比如要共享变量share_variable,在每个核的代码中都声明:
///////////////////////////////////////////////////////////////////////////////////////////////
#pragma DATA_SECTION (share_variable, ".global_shared");
static unsigned int share_variable;
///////////////////////////////////////////////////////////////////////////////////////////////
(2)在link文件*.cmd中加入段定义
//////////////////////////////////////////////////////////////////////////////
MEMORY {
.....
VAR_SHARED_RAM: origin = 0x0C3E0000 length=0x00020000
.....
}
....
.global_shared: type=NOINIT > VAR_SHARED_RAM
///////////////////////////////////////////////////////////////////////////////////////////////
这样每个核上的变量share_variable,都对应与M3中的同一个内存,这就达到了类似全局变量的效果。
访问L2也是一样的,使用全局L2地址,确定变量定义在同一个物理位置。
BTW:Enea提供针对C66的商用平台软件,如果有兴趣可以联系。
Br
William.dong@enea.com